子類父類代換
場景:在不同的條件下,需要建立不同的實現子類時。
如網路通訊可以使用tcp、udp。可以實現同乙個介面,通過工廠類根據條件(tcp或udp)來例項化不同的子類。
這些子類符合黎克特制代換原則。
public
inte***ce
tlprotocol
public
class
tcpimplements
tlprotocol
}public
class
udpimplements
tlprotocol
}/**
* 根據條件type生產tlprotocol的特定子類
**/public
class
tlprotocolfactory
if(type.equalsignorecase("tcp")) else
if(type.equalsignorecase("udp"))
return
null;
}}//tlprotocolfactory tlprotocolfactory = new tlprotocolfactory();
//tlprotocol protocal = tlprotocolfactory .gettlprotocol("tcp");
建立其他工廠的工廠
場景:同一系列的產品,一套的東西,需要對應的一套工廠來建立不同的實現子類。這時需要乙個抽象工廠來根據條件建立需要的工廠。
例項:
抽象工廠模式 抽象工廠模式
抽象工廠模式其實是圍繞了乙個超級工廠建立其他的工廠 可參考工廠模式 這個超級工廠又可以想像成是其他工廠的工廠,這種設計模式是一種建立型模式。在抽象工廠模式中,介面是負責建立乙個相關物件的工廠,不需要顯式指出其類。每個生成的工廠都能按照工廠模式提供物件。意圖提供乙個建立一系列相關或相互依賴物件的介面,...
工廠模式 抽象工廠模式
這裡使用簡單的話來講解工廠模式,不涉及程式設計 什麼是工廠模式呢?我的理解是對抽象介面例項的封裝。假如有乙個介面,有若干的實現類,代表不同的例項。傳統產生物件的方法是直接new乙個出來,對於每個例項都要new,當實現介面的類較多時會很麻煩,並且類的實現也暴露出來了。工廠模式是一種產生物件的模式,使用...
工廠模式 抽象工廠模式
簡化乙個事物有很多種方法,也就是換乙個容易記住的稱呼,最簡單的當然就是數字作為代號,但需要使用某個具體類的功能時就指出它的代號,讓它生產物件並呼叫它的成員方法,這樣使用者就不必關心物件的生成細節。生成的物件一般以指標的形式返回 方便對物件內部成員方法的呼叫 這就和工廠生產產品很像,機器都有編號,乙個...