5. 简单工厂
简单工厂模式(Simple Factory Pattern)是一种创建型设计模式,其主要目的是通过将对象的创建逻辑封装在一个工厂类中,从而隐藏对象的创建细节并简 化对象的创建过程。
在简单工厂模式中,客户端通过向工厂类传递不同的参数来请求工厂创建不同类型的对象。
6. 工厂方法模式
工厂方法模式(Factory Method Pattern)是一种创建型设计模式,它定义了 一个用于创建对象的接口,但是具体创建哪个类的对象由子类决定。
在工厂方法模式中,我们将对象的创建委托给具体的工厂类,由工厂类来负责创建具体的产品对象。这样,客户端代码只需要关心所需对象的抽象类型,无需关心具体的实现细节,从而实现了解耦。
代码:
public interface CarFactory { Car getCar(); } public class JinBeiFactory implements CarFactory { @Override public Car getCar() { return new JinBei(); } } public interface Car { void carName(); } public class JinBei implements Car { @Override public void carName() { System.out.println("金杯"); } } public class Customer { public static void main(String[] args) { Car car = new JinBeiFactory().getCar(); car.carName(); } }
优缺点:
工厂方法模式的优点
用户只需要知道具体工厂的名字,就可以获取到想要的产品,不需要关注产品
的创建过程,在系统新增加产品的时候,只需要添加具体产品类和对应的具体工厂,不需要对原工厂进行修改,满足了开闭原则
工厂方法模式的缺点 :
每增加一个产品,就需要一个具体产品类和对应的具体工厂类,这样会增加系
统的复杂度
7. 抽象工厂模式
抽象工厂模式是工厂方法模式的扩展,它不仅可以创建单一产品,还可以创建 一组相关的产品。
抽象工厂模式比工厂方法模式的抽象程度更高. 在工厂方法模式中每一个具
体工厂只需要生产一种具体产品,但是在抽象工厂模式中一个具体工厂可以
生产一组相关的具体产品,这样一组产品被称为产品族.产品族中的每一个产
品都分属于某一个产品继承等级结构.
抽象工厂模式优点
对于不同产品系列有比较多共性特征时,可以使用抽象工厂模式,有助于提
升组件的复用性.当需要提升代码的扩展性并降低维护成本时,把对象的创建和使用过程分
开,能有效地将代码统一到一个级别上解决跨平台带来的兼容性问题
抽象工厂模式缺点
增加新的产品等级结构麻烦,需要对原有结构进行较大的修改,甚至需要修改
抽象层代码,这显然会带来较大不变,违背了开闭原则.
8. Spring用到工厂模式的接口
1. BeanFactory:Spring中最基本的工厂模式实现是BeanFactory。BeanFactory是一个工厂类,负责创建和管理Spring应用程序中的对象。它 使用了工厂模式的思想,通过配置文件或注解来创建和管理对象。
2. ApplicationContext:ApplicationContext是BeanFactory的子接口,它是 Spring框架中更高级的工厂模式实现。它除了拥有BeanFactory的功能之 外,还提供了更多的特性,如国际化支持、事件机制、AOP、资源管理等。
3. FactoryBean:Spring还提供了FactoryBean接口,它可以用来创建特定类 型的bean。FactoryBean使用了工厂模式的思想,通过实现FactoryBean接口来创建特定类型的bean。
4. BeanPostProcessor:BeanPostProcessor是Spring框架中的另一个工厂模式实现。它负责在Spring容器实例化bean之后,对bean进行处理和修改。
5. MessageSource:Spring中的MessageSource接口也是一个工厂模式的实现。它用于国际化,通过提供一组键值对,根据本地语言和区域设置返回对 应的字符串。
发表评论