(三)名值模式
名值模式,通常用來描述在系統設計階段不能完全確定屬性的物件,這些物件的屬性在系統執行時會有很大的變更,或者是多個物件之間的屬性存在很大的差異。
1. 使用名值模式進行設計時,如果對「其他屬性」僅作瀏覽儲存、不作其它任何特殊處理,則通常會設計乙個「屬性模板」表,該錶的資料記錄在系統執行時動態維護。
系統執行時,如需維護「產品其他屬性」,可先從「屬性模板」中選擇乙個屬性名稱,然後填寫「屬性值」儲存,系統會將對應的產品id、屬性模板id及剛剛填寫的「屬性值」一起儲存在「產品其他屬性」裡,這樣就完成了相關設定。無論產品的其他屬性需求發生怎樣的變化、怎樣增刪改屬性,都可以在執行時實現,而不必修改資料庫設計和程式**。(見下圖)
2. 使用名值模式進行設計時,如果對「其他屬性」有特殊處理,比如統計彙總,那麼這個屬性名稱需要在程式**中作「硬編碼」,即該屬性名稱需要在程式**中有所體現,此時可以在「產品其他屬性」表中直接記錄「屬性名稱」,不再需要「屬性模板」表。
系統執行時,如需維護「產品其他屬性」,程式直接列出「屬性名稱」,然後填寫「屬性值」儲存,系統會將對應的產品id、屬性名稱及剛剛填寫的「屬性值」一起儲存在「產品其他屬性」裡,這樣就完成了相關設定。以後如果需求發生變更,則只需修改相應的程式**即可,不必修改資料庫設計。(見下圖)
設計模式名錄
這個部分的主要任務就是使用各種方法建立 或組合 各種型別的物件,並向物件的使用者隱藏物件的建立過程。定義乙個介面 抽象工廠 用於建立一系列相關或相互依賴的物件,而不需要指定它們的具體型別.在應用抽象工廠過程中,元件通過一系列的抽象工廠決定最終的結構,而元件的使用者則必須選擇使用其中乙個抽象工廠來建立...
python設計模式名片 python設計模式
直譯器模式 多用於dsl,領域專用語言,from pyparsing import word,oneormore,optional,group,suppress,alphanums word word alphanums command group oneormore word token supp...
資料庫設計模式 主擴充套件模式
一 主擴充套件模式 主擴充套件模式,通常用來將幾個相似的物件的共有屬性抽取出來,形成乙個 公共屬性表 其餘屬性則分別形成 專有屬性表 且 公共屬性表 與 專有屬性表 都是 一對一 的關係。專有屬性表 可以看作是對 公共屬性表 的擴充套件,兩者合在一起就是對乙個特定物件的完整描述,故此得名 主擴充套件...