解释
平时我们创建对象的时候都是直接new对应的对象,但是为了安全,可以新加一层接口,里面定义一个创建对象的方法,但是没有具体逻辑,而具体的创建的逻辑,可以通过新建类实现接口,重写创建方法的方式来实现。
定义
定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。同时在创建对象时对客户端隐藏了创建逻辑。这就是工厂模式。
核心
创建过程在子类实现
优点
1.扩展性好,想要增加一个产品,直接扩展一个工厂类就可以了。
2.安全性好,对客户端隐藏了具体的创建的实现。
3.操作简单,调用者想要创建对象,只要知道其名字就可以了。
缺点
每次增加一个产品都需要添加一个类,如果产品特别多,会导致代码中的类特别多,不易于维护。
使用场景
1.根据传参不同去访问不同的数据库。
2.连接服务器协议的方式HTTP、IMAP、POP3
3.MQ生产者发送消息,不同的生产者其实发送的动作是一样的。
具体使用描述
1.创建一个工厂接口,里面定义创建对象的方法。
2.再分别创建两个工厂类,均实现这个工厂接口,并按照各自的逻辑重写创建对象的方法。
代码实现
public interface BallFactory { public Ball create(); } public class SoccerFactory implements BallFactory { @Override public Ball create() { //do something return null; } } public class BasketBallFactory implements BallFactory { @Override public Ball create() { //do something return null; } }
其他应用
持续更新!!!