畫皮畫虎難畫骨,知人知面不知心相同的外觀下,蘊含豐富的內涵,甚至迥異的操作,這就是外觀模式。
前面我們實現的幾種模式,常說的有一點,保證外部api
的單調性。
外觀模式就是這樣的東西,或者換一種說法:面向介面程式設計
。
當我專注於流程和組織的時候,使用介面構建出純粹的抽象業務,此時,我可以說我的工作完成了。
因為業務流程的確如此,但是涉及到不同的細節場景,每種的具體處理有時候天差地別。
讓每個業務線的人員自行去進行填充實現就好了。
著名的slf4j
,本身就是個空殼子,如果不引入具體實現的包,真的用不了。
keras
也是,雖然被冠以框架之名,但是更多的精力是定義了各種框架的介面標準,底層具體實現還是需要對接其他框架。
不得不說,對於非關注點,我們的確只需要乙個統一的簡單的方式互動,能使用就行。
這樣就能夠更快的解決問題,去開發產品。
必定需要這麼乙個東西,去能夠包容差異,又能夠統一互動,這就是外觀模式。
現在可以稍微修飾一下前面的敘述,豐富的內涵是必須的,但是不應該迥異。
public
inte***ce
loggerinte***ce
@component
public
class
logge***ctory;}
@autowired
public
void
setloggerinte***ce
(loggerinte***ce loggerinte***ce)
}
@component
public
class
errorlogger
implements
loggerinte***ce
}
public
class
entrance
}
你可以換列印方法,甚至直接輸入到資料庫,redis
,mysql
都隨意,但是我的最外面的呼叫方式是不變的。
這裡也凸顯了外觀模式的另乙個極大的作用,那就是在不用修改**的情況下完成邏輯更新。
設計模式之間並沒有明確的界限,之間的區別都只是在各自領域內的差異,甚至於微小而不可見。
相同方式,多個物件
相同方式,多種處理
相同方式,多種實現
諸多設計模式看起來都有巧立名目之嫌,但是核心思想總是不變的。
模板方法也是一樣的套路,嗯,慢慢遍歷吧。
設計模式 外觀模式
外觀模式,我的理解就是將複雜的類進行重新封裝,將簡單的介面呈現出來,降低呼叫端和實際類的耦合性。拿 大話設計模式 上邊關於 和 的例子來說。對於不入門的股民來說,交易有些過於龐大,需要學習的東西很多,如果沒整明白就進行投資,很容易賠錢的。很多剛入 的股民都賠的很慘。而買 有提出了乙個新的觀念,我們買...
設計模式 外觀模式
何為外觀模式?外觀模式 為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得一子系統更加容易使用。它是一種結構型模式,它主要解決的問題是 元件的客戶和元件中各種複雜的子系統有了過多的耦合,隨著外部客戶程式和 各子系統的演化,這種過多的耦合面臨很多變化的挑戰。uml類圖 乙個...
設計模式 外觀模式
外觀模式說白了就是為一組介面提供乙個一致的介面。例如 定義三個類a b c,每個類各定義乙個方法。class a pubic void showa cout a showa pubic void showb cout b showb pubic void showc cout c showc 定義乙...