工厂方法模式(Factory Method)

[color=brown][size=x-large]工厂方法模式的结构[/size][/color]:
结构与角色如下图:

[img]http://dl.iteye.com/upload/attachment/0068/1216/638c6ad1-0f1e-3832-9030-e1af2d8ab23a.png[/img]

[color=brown][size=large]工厂方法模式的系统涉及到的角色如下:

1)抽象工厂(Creator):担任这个角色的是工厂方法模式的核心,它是与应用无关的,也就是上图的Creator。在实际系统中,这个角色也常常使用抽象Java类实现。

2)具体工厂(ConcreteCreator):担任这个角色的是实现了抽象工厂的具体Java类,也就是上图的ConcreteCreator01与ConcreteCreator02。

3)抽象产品(Product):工厂方法模式所创建的对象的超类型,也就是产品对象共同的父类或拥有的接口,如上图中的Product。

4)具体产品(ConcreteProduct):这个角色实现了抽象产品角色所声明的接口,如上图的ConcreteProduct01,ConcreteProduct02。[/size][/color]

[color=brown][size=x-large]工厂方法模式在农场的实现:[/size][/color]

抽象工厂角色FruitGardener 的源代码:
public interface FruitGardener {

public Fruit factory();

}


具体工厂角色AppleGardener 的源代码 :

public class AppleGardener implements FruitGardener {

@Override
public Fruit factory() {
return new Apple();
}

}


具体工厂角色GrapeGardener 的源代码 :
public class GrapeGardener implements FruitGardener {

@Override
public Fruit factory() {
return new Grape();
}

}


具体工厂角色StrawberryGardener 的源代码 :

public class StrawberryGardener implements FruitGardener {

@Override
public Fruit factory() {
return new Strawberry();
}

}


[size=x-large][color=brown]PS.一个复杂的工厂逻辑就是循环使用产品对象[/color][/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值