拖延创建对象的工厂模式

例子,pizza的生产模式
1.平行的类层级,如Pizza类和PizzaStorte这两个抽象类,他们的子类都有特定的实现。所谓实现一个借口,指的是实现超类型的(类或接口)中的一个方法。在PizzaStore中有create和order两个方法,这两个方法将由子类决定的可变部分(create部分,在父类pizzastore中是抽象的,在派生类中实现,如在NYpizzastore中实现)和公共部分的不变部分相分离(即每个pizza的烘烤,切片等手续),create中的对象的创建推迟到子类中去,至于交给PizzaStore的哪一个子类,由顾客决定。
2.工厂模式就是让子类决定该创建的对象是什么,选择了哪个子类,也就决定了创建的产品是哪个。顾客开始叫餐,首先先选择一个具体的pizzastore,如NYpizzastore(即一个继承自pizzastore的一个派生类,这个由用户决定),实例化,然后调用order(type),order调用create(这个create方法是由子类实现的,比如选择返回NYpizzastore里的哪个pizza,这个pizza则是Pizza的子类),使用Type参数,生成pizza类型,最后执行公共部分,当然公共部分也允许变化,只要在PizzaStore的子类中对cut.box等方法进行覆盖即可。
3.抽象工厂模式则是利用组合,创建相关依赖家族。


很重要的多态体现,
PizzaStore nystore=new NYPizzaStore();
Pizza pizza=createPizza(string type);//此时返回的pizza是Pizza类的子类的一个实例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值