《設計模式》第二章中附加分隔符和連字元資訊存放問題

2021-04-01 03:07:06 字數 695 閱讀 2135

考慮《設計模式》中第二章

2.3和

2.8:

發現描述的

lexi

系統在使用

strategy

模式時,將一些分隔符加入到了原始資料中

這樣會帶來的問題:

1、破壞了原始資料

2、增加了其他分析的難度,例如拼寫檢查和斷字處理需要考慮這些特殊的分隔符

3、當每次排版改動時,都會使用

strategy

模式向原始資料中加入分隔符這種雜亂的資訊

鑑於以上這些,可以發現對應的組合設計不能很好的支援分析,因為它把分隔符這種內部細節透露出來,暴露給一些對原始資料處理分析的部分。

解決方案:借鑑《

c++沉思錄》的談到的虛擬預處理的方法,可以考慮僅僅儲存原始資料,顯示時才使用

strategy

模式對原始資料進行格式化,附加入分隔符這種資訊,如:行、列、連字元等。而這些資訊只是對應與螢幕顯示,對資料並不進行真正的改動,所以原始資料始終是保持不變的。

優點:動態資訊只在動態情況下使用。

缺點:每次出現即使是很區域性的資料變化時,都需要進行全域性的重新排版格式化,可能會做很多無用功。

使用思想:將不變與變化的部分分離,也是

oo的重要思想,用物件封裝變化的部分。

【參考】《

c++沉思錄》

第二章 工廠設計模式

簡單 public class catpublic class dog簡單工廠對外輸出 public class factory public static cat getcat 呼叫抽象工廠生產物件 public class main 簡單工廠的缺點 步驟public inte ce factor...

第二章 Cach 設計模式 策略模式

思考 示例 可以隨意組合招數,增加三次打擊方法threefighting 而 工廠方法則需要呼叫三次。class pha.yx.design.strategy.context extends registeredobject method fighting method threefighting ...

大話設計模式 第二章 策略模式

策略模式 strategy 它定義了演算法家族,分別封裝起來,讓他們之間可以相互替換,此模式讓演算法的變化,不會影響到試用演算法的客戶。1,定義現金抽象類 現金父類 public abstract class cashsuper 2,定義各個演算法類,全部繼承自現金父類 view code 沒有活動...

第二章 策略模式

物件導向的程式設計,並不是類越多越好,類的劃分是為了封裝,但分類的基礎是抽象,具有相同屬性和功能的物件的抽象集合才是類。收費物件生成工廠 策略模式strategy 它定義了演算法家族,分別封裝起來,讓他們之間可以互相替換,此模式讓演算法的變化,不會影響到使用演算法的使用者。商場收銀時如何 用打折還是...

第二章 策略模式

物件導向的程式設計,並不是類越多越好,類的劃分是為了封裝,但分類的基礎是抽象,具有相同屬性和功能的物件的抽象集合才是類。商場 程式簡單工廠uml圖 includeusing namespace std class cashsuper class cashnormal public cashsuper...