首页 > 代码库 > 工厂模式(二)
工厂模式(二)
工厂方法模式:简单工厂模式的进一步抽象和推广。工厂方法模式把简单工厂中的具体的工厂类划分为两层:抽象工厂层+具体工厂层,类图如下:
涉及到的角色:
抽象产品角色:所有产品的共同父类或共有接口,用以实现多态。
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俩个类即可。
工厂模式(二)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。