1.什麼是工廠方法模式?
也是建立型模式,又叫多型工廠方法模式,核心工廠不再參與建立具體產品,作為乙個抽象工廠角色,作為工廠子類的公共介面,且每個工廠子類都必須實現它,這樣就達到了增加新的角色時,不需要修改方法內部**;
2.工廠方法模式的角色定位
抽象工廠:工廠方法模式的核心,任何工廠類都必須實現他;
具體工廠:具體工廠是抽象工廠的乙個實現,負責建立例項化產品;
抽象角色:所有工廠類建立所有物件的父類,作為乙個公共介面;
具體產品:工廠類所建立出來的具體例項化產品;
與簡單工廠模式的區別?
簡單工廠模式在新增角色時,就要多乙個 else if 判斷 具體哪個角色,修改了工廠類方法,擴充套件性較差;
工廠方法模式:
建立乙個抽象工廠介面
public inte***ce animalfactory
然後建立 他的實現類工廠,並且重寫run(),並負責建立具體例項化物件;
public class birldfactory implements animalfactory
}可以反過來理解,就是每個實際物件的工廠,抽象工廠的子類工廠;就只是為了建立物件;那麼具體呼叫時:
1.獲得自工廠的具體建立哪乙個物件
animalfactory aml=new birldfactory();
2.很明顯是鳥的物件, 而我們使用 乙個介面animal接收 ,多型 效果,
animal animal= aml.run();
3.已經獲得物件,父類引用指向子類物件,之後利用多型呼叫方法即可;
animal.get();
當你再新增角色時,只需建立 實現工廠,並實現抽象工廠介面就可以,不需要改變工廠方法,達到了 開放封閉的效果,擴充套件性強;
再接再厲,再接再厲,再接再厲!!!
設計模式 工廠模式之工廠方法模式
工廠方法模式是指定義乙個建立物件的介面,然後實現這個介面的工廠來決定建立什麼樣的例項。工廠方法讓類的例項推遲到子類中進行。在這個模式中,只關心需要建立的是什麼工廠,不需要關心建立的細節。而且新加入的產品符合開閉原則。1 建立支付介面,裡面定義抽象的支付方法。package com.gupao.vip...
設計模式之工廠方法模式
package com.csair.design.pattern 工廠方法,有抽象基類,每個子類生產乙個具體物件,與抽象工廠的關係是,抽象工廠生產多個產品 產品有某種內在聯絡 工廠方法只生產乙個物件 author ppt public class factorymethod public stati...
設計模式之工廠方法模式
在介紹工廠方法模式之前,先來介紹一下簡單工廠。什麼是簡單工廠?在類中,難免要例項化一些類,那麼我們把這些類的例項化抽離出來封裝成乙個工廠類,工廠類提供乙個公共的靜態或非靜態的方法來返回其他物件所需要的物件。這樣做的目的就是將物件的例項化與邏輯 分開,提高 的復用能力。這就是簡單工廠。public a...