對於產品族提供乙個抽象工廠,具體的工廠提供具體的產品族
食物的介面
public inte***ce ifood
}所有的食物種類
public class beverage extends abstractbasefood implements ifood
}public class chickenwings extends abstractbasefood implements ifood
}public class frenchfries extends abstractbasefood implements ifood
}public class hamburg extends abstractbasefood implements ifood
}中國kfc店中的食物
public class chinabeverage extends beverage
}public class chinachickenwings extends chickenwings
}public class chinafrenchfries extends frenchfries
}public class chinahamburg extends hamburg
}生產這些食物的kfc店
public inte***ce ikfcfactory
中國口味的kfc店
public class chinakfcfactory implements ikfcfactory
@override
public chickenwings createchickenwings(int num)
@override
public frenchfries createfrenchfries(int num)
@override
public hamburg createhamburg(int num) }顧客
public class customer
public float orderhamburg(int num)
public float orderfrenchfries(int num)
public float orderchickenwings(int num)
public float orderbeverage(int num)}測試
//例項化乙個中國kfc店,如果其他的口味只要實現ikfcfactory介面就行,這個介面要求肯定提供這幾種食物,但是口味不定
customer cus = new customer(ikfc);
float hammoney = cus.orderhamburg(1);
float chimoney = cus.orderchickenwings(7);
float fremoney = cus.orderfrenchfries(67);
float bevmoney = cus.orderbeverage(3);
system.out.println("總計:"+(hammoney + chimoney + fremoney + bevmoney));}}
抽象工廠模式 設計模式3之抽象工廠模式
工廠方法模式中工廠只負責同類產品的生產。比如電視機工廠不應該生產汽車。然而現實生活中有很多綜合型的工廠,比如有些電視工廠不僅生產電視機,還會生產與之配套的機頂盒。那麼抽象工廠模式隨之誕生,這種模式將考慮多種型別產品的生產。我們總結下 工廠方法模式只考慮成產同一等級級的產品抽象方法模式考慮生產多等級的...
設計模式之抽象工廠模式
目標 定義了乙個建立一系列相關或相互依賴的介面,而無需指定它們的具體類。用於交換產品系列,如 access sql server 產品的具體類名被具體工廠的實現分離 下面是示例 include include include using namespace std 使用者抽象介面 class ius...
設計模式之抽象工廠模式
定義 abstract factory,提供乙個建立一系列相關或相互依賴物件的介面,而無需制定它們具體的類 場景 有一家生產螺絲螺帽的工廠,螺絲有兩種型號 公的和母的,螺帽也有兩種型號 公的和母的。沒個車間只生產一種螺絲和螺帽。這裡車間就是乙個concretefactory 具體工廠 螺絲和螺帽便是...