首页 > 其他 > 详细

工厂模式(二)

时间:2017-05-29 20:23:32      阅读:393      评论:0      收藏:0      [点我收藏+]

工厂方法模式:简单工厂模式的进一步抽象和推广。工厂方法模式把简单工厂中的具体的工厂类划分为两层:抽象工厂层+具体工厂层,类图如下:

技术分享

涉及到的角色:

抽象产品角色:所有产品的共同父类或共有接口,用以实现多态。

1 //电脑接口
2 public interface Icomputer{
3 }

具体产品角色:实现抽象产品角色所声明的接口。

1 //戴尔电脑
2 public class Dell implements Icomputer{
3 }
1 //联想电脑
2 public class Lenovo implements Icomputer{
3 }

抽象工厂角色:工厂方法模式的核心,创建对象工厂类必须继承或实现它,实际系统中常常是个抽象类。

1 //定义工厂,它是个抽象类
2 public abstract class AbstractFactory{
3     public abstract Icomputer createComputer();
4 }

具体工厂角色:实现了抽象工厂接口的具体类,应用程序调用它以创建具体产品。

1 //戴尔工厂
2 public class DellFactory extends AbstractFactory{
3     @Override
4     public Icomputer createComputer() {
5         return new Dell();
6     }
7 }
1 //联想工厂
2 public class LenovoFactory extends AbstractFactory{
3     @Override
4     public Icomputer createComputer() {
5         return new Lenovo();
6     }
7 }

 应用实例:

 1 //客户端
 2 public class Client{
 3     private void mian() {
 4         AbstractFactory factory = null;
 5         factory = new DellFactory();
 6         factory.createComputer();
 7         factory = new LenovoFactory();
 8         factory.createComputer();
 9     }
10 }

这样做的好处就是只需要有Icomputer.java和AbstractFactory.java编译就能通过,另外当需求变化时只需要增加或者删除相应的类就可以。比如要增加华硕电脑只需增加Asus和AsusFactory俩个类即可。

 

工厂模式(二)

原文:http://www.cnblogs.com/ergou/p/6918849.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!