23种设计模式----------抽象工厂模式
2014-12-03 20:41
267 查看
抽象工厂模式:
在上一篇中讲到通过各个具体球类(如:足球,篮球等)来继承总球类(Ball),来实现通过BallFactory对具体球类的生产.
不过,当时只是能造出不同球类,而在每种球类中肯定也有颜色,大小等不同的属性.所以,为了实现在工厂中添加属性.将抽象的Ball球类,修改成Bll接口,在该接口中添加所需要的方法:
这种模式是抽象工厂模式,抽象工厂模式是抽象方法模式的升级.在有多个业务品种,业务分级时,采用抽象工厂模式生产需要的对象是一种非常好的解决房还是.(比如,在生产球类的时候,不仅要分球的种类,也要分球的颜色等....)
即:
然后让之前具体球类实现该Ball这个接口
这样,就能对球的种类进行不同的生产了.接下来就是给同种球类涂上不同的颜料了.
每个品种的球类定义好了,然后就是定义生产各个球类的工厂了.
抽象工厂模式的扩展性一般。
在上一篇中讲到通过各个具体球类(如:足球,篮球等)来继承总球类(Ball),来实现通过BallFactory对具体球类的生产.
不过,当时只是能造出不同球类,而在每种球类中肯定也有颜色,大小等不同的属性.所以,为了实现在工厂中添加属性.将抽象的Ball球类,修改成Bll接口,在该接口中添加所需要的方法:
这种模式是抽象工厂模式,抽象工厂模式是抽象方法模式的升级.在有多个业务品种,业务分级时,采用抽象工厂模式生产需要的对象是一种非常好的解决房还是.(比如,在生产球类的时候,不仅要分球的种类,也要分球的颜色等....)
即:
//球接口 public interface Ball { void getBallKind(); void getBallColor(); }
然后让之前具体球类实现该Ball这个接口
//篮球实现Ball public abstract class Basketball implements Ball{ public void getBallKind(){ System.out.println("我是篮球!!!"); } } //足球实现Ball public abstract class Football { public void getBallKind(){ System.out.println("我是足球!!!"); } }
这样,就能对球的种类进行不同的生产了.接下来就是给同种球类涂上不同的颜料了.
//给篮球涂色 public class BlackBasketball extends Basketball{ public void getBallColor() { System.out.println("我是黑色篮球"); } } public class RedBasketball extends Basketball{ public void getBallColor() { System.out.println("我是红色篮球"); } } //给足球涂色 public class BlackFootball extends Football{ public void getBallColor() { System.out.println("我是黑色足球!!!"); } } public class RedFootball extends Football{ public void getBallColor() { System.out.println("我是红色足球!!!"); } }
每个品种的球类定义好了,然后就是定义生产各个球类的工厂了.
//红球工厂类 public class RedBallFactory implements BallFactory{ public Ball createBasketball() { return new RedBasketball(); } public Ball createFootBall() { return new RedFootball(); } } //黑球工厂类 public class BlackFactory implements BallFactory{ public Ball createBasketball() { return new BlackBasketball(); } public Ball createFootBall() { return new BlackFootball(); } }
抽象工厂模式的扩展性一般。
相关文章推荐
- 23种设计模式(3):抽象工厂模式
- 23种经典设计模式的java实现_1_抽象工厂模式
- 23种设计模式(3):抽象工厂模式
- 23种设计模式(3):抽象工厂模式
- 23种设计模式(3):抽象工厂模式
- 23种设计模式(3):抽象工厂模式
- 23种设计模式(3):抽象工厂模式
- GoF23种设计模式之创建型模式之抽象工厂模式
- Java开发中的23种设计模式之二:抽象工厂模式(Abstract Factory)
- 23种经典设计模式的java实现_1_抽象工厂模式
- 23种设计模式(3):抽象工厂模式
- 23种设计模式之抽象工厂模式2
- 23种设计模式(3):抽象工厂模式
- 23种设计模式-2.抽象工厂模式(Abstract Factory)
- 23种设计模式(3):抽象工厂模式
- java_23种设计模式之抽象工厂模式
- 23种设计模式之抽象工厂模式
- 23种设计模式(3):抽象工厂模式
- 23种设计模式(3):抽象工厂模式
- 23种设计模式(3):抽象工厂模式