inte***ce realty
//此介面相當於抽象概括房地產整個行業,由內部方法描述房地產行業的內部各種細節。
//以此達到可擴充套件的目的,例如租賃等行為都將在這個介面中展開;
class employee implements realty
}
class houseowner implements realty
}
以上兩個角色都具有售賣行為,可以實現房地產介面,達到共同管理。
需要實現他們,可以使用簡單工廠模式,如下:
class realtyfactory
public static realty provider(string realtytype)
private static realty getinstant(string realtytype)else if ("role".equalsignorecase(realtytype))else return null;}}
測試類:
public class patterntest
}
測試結果:
抽象工廠模式:
在講抽象工廠模式之前,需要對realtyfactory進行改造,達到不修改原始碼情況下,簡單工廠和抽象工廠並用效果。
class realtyfactory
public static realty provider(string realtytype)
private static realty getinstant(string realtytype)else if ("role".equalsignorecase(realtytype))else return null;}}
abstract class regionabstractfactory
//房地產行業有地區劃分,可以將房地產工廠彙總,構成抽象類,由這個抽象工廠管理所有房地產工廠;
//擴充套件一點,日常工作中,在功能未定的情況下,我們可以將方法宣告為抽象預留出來。
class tangshancity extends regionabstractfactory
public tangshancity()
}//唐山城市的房地產
由於城市的增加,需要為城市建立乙個工廠的提供者,由他們例項化具體工廠:
class factoryprovider
public static regionabstractfactory getfactory(string factorytype)
private static regionabstractfactory getinstance(string factorytype) else return null;}}
測試方法:
public class patterntest
}
測試結果:
工廠方法模式:
inte***ce realtyfactory
class tangshanfactory implements realtyfactory
}
以上兩個工廠毫無關聯,在拓展時,也僅需要實現工廠介面即可,而不需要修改原始碼。
class baodingfactory implements realtyfactory
}
abstract class region
class tangshancity extends region
}
class baodingcity extends region
}
測試類:
class test
}
工廠方法模式對工廠和地區同時約束,好處在於:在有新的城市或新的工廠需要加入時,不需要修改原始碼,即可達到共同行為約束的目的,減少修改**帶來的風險。 設計模式之工廠模式(簡單工廠 工廠模式 抽象工廠)
參考博文 侵權必刪 什麼是工廠模式 通過 物件建立 模式繞開new,來避免物件建立 new 過程中所導致的緊耦合 依賴具體類 適用性 使用new建立物件且導致緊耦合的場景。思考 物件導向程式設計要以動態的思維去看待 換句話說,在看 時需要時間概念,發現 在未來的穩定之處和變化之處。一般介面和抽象類是...
簡單工廠,工廠模式,抽象工廠
簡單工廠,工廠模式,抽象工廠 都屬於設計模式中的建立型模型,主要功能,幫助把物件的例項化部分抽取出來,增強系統擴充套件性.1.簡單工廠 簡單工廠模式的工廠類一般是使用靜態方法,通過接收的引數的不同來返回不同的物件例項。不修改 的話,是無法擴充套件的。include using namespace s...
簡單工廠 工廠模式 抽象工廠模式
簡單工廠模式 public class operation set public double numberb set public virtual double getresult 加減乘除類 class operationadd operation class operationsub oper...