工厂模式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工厂模式相关的知识,希望对你有一定的参考价值。
工厂方法模式:简单工厂模式的进一步抽象和推广。工厂方法模式把简单工厂中的具体的工厂类划分为两层:抽象工厂层+具体工厂层,类图如下:
涉及到的角色:
抽象产品角色:所有产品的共同父类或共有接口,用以实现多态。
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俩个类即可。
以上是关于工厂模式的主要内容,如果未能解决你的问题,请参考以下文章
设计模式简单工厂模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )