工廠模式之抽象工廠
是一種建立型設計模式, 它能建立一系列相關的物件, 而無需指定其具體類。類繼承自抽象工廠,即可生產指定物件。新增實體的時候無需修改已有**。比如食物這個工廠,在現實世界中,它可以生產麵包、雞蛋、肉等,在魔法世界中,食物工廠可以生產魔法豆、會唱歌的火雞、hp口服液等,我們把食物比作是最大的乙個抽象工廠,現實世界(modernfactory)抽象工廠和魔法世界(magicfactory)抽象工廠繼承自最大的食物抽象工廠,然而bread麵包、egg雞蛋、meat肉類都繼承自modernfactory抽象工廠、magicbeans魔法豆等繼承自magicfactory,我們把食物的世界分為了現實和魔法兩族,而這兩族中又分為了麵包、雞蛋、火腿腸、啤酒、飲料、礦泉水等更為具體族(物件),當我們任意定製新的產品一族時就無需再修改已有**,只需根據產品分類不同,繼承自不同的工廠即可,一步步化抽象為具體,抽象工廠實際最大的好處就是實現了**的解耦。
talk is cheaper,show me your code.
abstractory.class
/**
* @author liutx
* @date 2020/12/8 22:18
* @description
*/public
abstract
class
abstractory
food.class
public
abstract
class
food
magicbeans.class
public
class
magicbeans
extends
food
}
bread.class
public
class
bread
extends
food
}
magicfactory.class
public
class
magicfactory
extends
abstractory
}
modernfactory.class
public
class
modernfactory
extends
abstractory
}
例項解讀:抽象工廠可以建立食物物件,食物大類分為現實世界的麵包和魔法世界的魔法豆,麵包是由現實工廠生產的,魔法豆是由魔法工廠生產的,魔法豆一族和麵包一族分別繼承自食物,通過**工廠就可以根據需求生產不同的食物(呼叫不同的方法)。main.class
public
class
main
}
輸出:
i create magicbeans
====
====
====
====
====
==魔法與現實的分界線==
====
====
====
====
====
=i create bread
抽象工廠模式 抽象工廠模式
抽象工廠模式其實是圍繞了乙個超級工廠建立其他的工廠 可參考工廠模式 這個超級工廠又可以想像成是其他工廠的工廠,這種設計模式是一種建立型模式。在抽象工廠模式中,介面是負責建立乙個相關物件的工廠,不需要顯式指出其類。每個生成的工廠都能按照工廠模式提供物件。意圖提供乙個建立一系列相關或相互依賴物件的介面,...
設計模式之工廠 抽象工廠
一 應用場景 工廠模式應用非常廣泛,意在抽象出一層專職管理物件產生以及物件間的關係,讓我們能夠專注於業務開發 1.不用去寫許許多多的new方法,替換實現類還得挨個修改。2.類中不涉及實現類,物件間只存在介面級別的耦合,客戶端呼叫注入實現類即可。由於工廠模式變種非常多,這裡只講一下常用的簡單工廠和抽象...
抽象工廠模式 設計模式3之抽象工廠模式
工廠方法模式中工廠只負責同類產品的生產。比如電視機工廠不應該生產汽車。然而現實生活中有很多綜合型的工廠,比如有些電視工廠不僅生產電視機,還會生產與之配套的機頂盒。那麼抽象工廠模式隨之誕生,這種模式將考慮多種型別產品的生產。我們總結下 工廠方法模式只考慮成產同一等級級的產品抽象方法模式考慮生產多等級的...