From dec015d9a6b2c5d392f71761d2ff1db4b826dc4a Mon Sep 17 00:00:00 2001 From: ChenX Date: Wed, 20 Dec 2017 10:10:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=85=E7=90=86className=20=E7=9A=84?= =?UTF-8?q?=E4=BB=A3=E7=A0=81.=20=E7=8E=B0=E5=9C=A8=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E4=BD=BF=E7=94=A8js=E6=9C=BA=E5=88=B6=E8=8E=B7=E5=BE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __test__/FileSystem/file.test.ts | 9 ---- src/DatabaseServices/FileSystem.ts | 69 +++++++----------------------- 2 files changed, 16 insertions(+), 62 deletions(-) diff --git a/__test__/FileSystem/file.test.ts b/__test__/FileSystem/file.test.ts index 444a42848..24e4ee39f 100644 --- a/__test__/FileSystem/file.test.ts +++ b/__test__/FileSystem/file.test.ts @@ -127,15 +127,6 @@ test('xxx', () => }); -CADFactory.RegisterObject(Line); -CADFactory.RegisterObject(BlockTableRecord); -CADFactory.RegisterObject(CommandHistoryRecord); -CADFactory.RegisterObject(HistorycRecord); -CADFactory.RegisterObject(ObjectAllDataHistoryRecord); -CADFactory.RegisterObject(AllObjectData); -CADFactory.RegisterObject(RemoveObjectData); -CADFactory.RegisterObject(CreateObjectData); - let l = CADFactory.CreateObject("Line"); diff --git a/src/DatabaseServices/FileSystem.ts b/src/DatabaseServices/FileSystem.ts index 1aa113a8c..2b8183e97 100644 --- a/src/DatabaseServices/FileSystem.ts +++ b/src/DatabaseServices/FileSystem.ts @@ -120,19 +120,16 @@ id只有在一个情况下才会更新.跨文档复制时. export class CADFactory { private constructor() { } - private objectNameMap = new Map CADObject>(); + private objectNameMap = new Map(); private static factory = new CADFactory(); static RegisterObject(C) { - let obj = new C() as CADObject; - this.factory.objectNameMap.set(obj.ClassName.toUpperCase(), () => new C()); + this.factory.objectNameMap.set(C.name, C); } - static CreateObject(name: string): CADObject { - let createF = this.factory.objectNameMap.get(name.toUpperCase()); - if (createF) - return createF(); + let C = this.factory.objectNameMap.get(name); + if (C) return new C(); } } @@ -201,10 +198,9 @@ export class CADObject //#region -------------------------File------------------------- //对象应该实现dataIn和DataOut的方法,为了对象的序列化和反序列化 - //类名,保证序列化时得到正确的new get ClassName(): string { - return "CADObject"; + return this.constructor.name; } //对象从文件中读取数据,初始化自身 @@ -428,11 +424,6 @@ export class CreateObjectData extends CADObject //#region -----------------------------File----------------------------- //对象应该实现dataIn和DataOut的方法,为了对象的序列化和反序列化 - //类名,保证序列化时得到正确的new - get ClassName(): string - { - return "CreateObjectData"; - } //对象从文件中读取数据,初始化自身 ReadFile(file: CADFile) { @@ -466,11 +457,7 @@ export class RemoveObjectData extends CADObject //#region -----------------------------File----------------------------- //对象应该实现dataIn和DataOut的方法,为了对象的序列化和反序列化 - //类名,保证序列化时得到正确的new - get ClassName(): string - { - return "RemoveData"; - } + //对象从文件中读取数据,初始化自身 ReadFile(file: CADFile) { @@ -503,12 +490,6 @@ export class AllObjectData extends CADObject //#region -------------------------File------------------------- //对象应该实现dataIn和DataOut的方法,为了对象的序列化和反序列化 - //类名,保证序列化时得到正确的new - get ClassName(): string - { - return "AllObjectData"; - } - //对象从文件中读取数据,初始化自身 ReadFile(file: CADFile) { @@ -579,11 +560,7 @@ export class ObjectCollection extends CADObject //#region -----------------------------File----------------------------- //对象应该实现dataIn和DataOut的方法,为了对象的序列化和反序列化 - //类名,保证序列化时得到正确的new - get ClassName(): string - { - return "ObjectCollection"; - } + //对象从文件中读取数据,初始化自身 ReadFile(file: CADFile) { @@ -625,7 +602,7 @@ export class ObjectCollection extends CADObject //命令历史记录集合 export class CommandHistoryRecord extends CADObject { - constructor(cmdName: string) + constructor(cmdName?: string) { super(); this.commandName = cmdName; @@ -690,11 +667,6 @@ export class CommandHistoryRecord extends CADObject //#region -------------------------File------------------------- //对象应该实现dataIn和DataOut的方法,为了对象的序列化和反序列化 - //类名,保证序列化时得到正确的new - get ClassName(): string - { - return "CommandHistoryRecord"; - } //对象从文件中读取数据,初始化自身 ReadFile(file: CADFile) @@ -755,12 +727,6 @@ export class HistorycRecord extends CADObject //#region -------------------------File------------------------- //对象应该实现dataIn和DataOut的方法,为了对象的序列化和反序列化 - //类名,保证序列化时得到正确的new - get ClassName(): string - { - return "HistorycRecord"; - } - //对象从文件中读取数据,初始化自身 ReadFile(file: CADFile) { @@ -1003,11 +969,6 @@ export class BlockTableRecord extends ObjectCollection //#region -----------------------------File----------------------------- //对象应该实现dataIn和DataOut的方法,为了对象的序列化和反序列化 - //类名,保证序列化时得到正确的new - get ClassName(): string - { - return "BlockTableRecord"; - } //对象从文件中读取数据,初始化自身 ReadFile(file: CADFile) { @@ -1045,12 +1006,6 @@ export class Line extends Entity //-----------------------------File----------------------------- //对象应该实现dataIn和DataOut的方法,为了对象的序列化和反序列化 - //类名,保证序列化时得到正确的new - get ClassName(): string - { - return "Line"; - } - //对象从文件中读取数据,初始化自身 ReadFile(file: CADFile) { @@ -1097,3 +1052,11 @@ export class Line extends Entity } CADFactory.RegisterObject(Line); +CADFactory.RegisterObject(BlockTableRecord); +CADFactory.RegisterObject(CommandHistoryRecord); +CADFactory.RegisterObject(HistorycRecord); +CADFactory.RegisterObject(ObjectAllDataHistoryRecord); +CADFactory.RegisterObject(AllObjectData); +CADFactory.RegisterObject(RemoveObjectData); +CADFactory.RegisterObject(CreateObjectData); +