抽象工廠類思考
提供乙個建立一系列相關或相互依賴的介面,而無需制定它們具體的類。
連線資料庫sql和caché並且每個資料庫對映的同張的表的型別是不同的。
class pha.yx.design.abstractfactory.user extends %registeredobject
method idset(arg as %string) as %status [ serveronly = 1 ]
property name as %string;
method nameget() as %string [ serveronly = 1 ]
method nameset(arg as %string) as %status [ serveronly = 1 ]
}
class pha.yx.design.abstractfactory.department extends %registeredobject
method idset(arg as %string) as %status [ serveronly = 1 ]
property name as %string;
method nameget() as %string [ serveronly = 1 ]
method nameset(arg as %string) as %status [ serveronly = 1 ]
}
class pha.yx.design.abstractfactory.idepartment extends %registeredobject
method getdepartment(id as %integer)
}
class pha.yx.design.abstractfactory.iuser extends %registeredobject
method getuser(id as %integer)
}
class pha.yx.design.abstractfactory.sqluser extends iuser
method getuser(id as %integer)
classmethod creatobject()
}
class pha.yx.design.abstractfactory.cacheuser extends iuser
method getuser(id as %integer)
classmethod creatobject()
}
class pha.yx.design.abstractfactory.sqldepartment extends idepartment
method getdepartment(id as %integer)
classmethod creatobject()
}
class pha.yx.design.abstractfactory.cachedepartment extends idepartment
method getdepartment(id as %integer)
classmethod creatobject()
}
直接用xecute命令直接反射,然後獲取引用物件。
配置的字串可以通過inc檔案來制定,符合開放封閉原則,又可配置。
注意:本章使用的反射+配置實現訪問程式
include pha.yx.design.abstractfactory.data
class pha.yx.design.abstractfactory.dataaccess extends %registeredobject
classmethod createdepartment() as idepartment
classmethod createusertwo() as iuser
}
#define database "cache"
改寫第一章思考生產電腦的例子。感興趣的同學實現後可以發我一起參考下。 modern c design 第十一章
本章介紹了經常遇到的雙分派的一種泛型解決方案。c 在語法上實現了單分派,即虛函式,通過動態機制選擇相應的函式。雙分派是形如fun object1 a,object2 b 根據a和b的實際型別動態自動分派乙個處理函式。最容易想到的方案,蠻幹法 寫一大堆過載函式.不過這種方法會有很強的依賴性。也提供了一...
第十一章3
第十一章 一 滾動元件 awt中的滾動元件包括scrollbar 滾動條 和滾動面板 scrollpane 兩種。1 滾動條scrollbar 在指定的取值範圍內快速選取某一值的功能。i.構造方法 public scrollbar int orientation,int value,int visi...
java第十一章
問題 1 錯誤 2 異常,1 編譯時異常 檢查異常 2 執行時異常 不檢查異常 是否能用 解決,是的就是異常,不是的就是錯誤 問題 1 先驗 2 捕獲 異常捕獲機智 異常的三個種類 1 檢查異常 2 執行時異常 3 錯誤 throw 提示方法呼叫者本方法可能發生異常 throw跟異常物件 throw...