2.1 介绍
创建型模式提供了创建对象的机制,能够提升已有代码的灵活性和可复用性。
● 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一,可以看作包含了三种模式类型,分别是简单工厂、工厂方法、抽象工厂(后两者是创建型模式介绍的两种设计模式,简单工厂不是一个正式的设计模式)。
● 现实场景实例:
a. 汽车制造:你需要一辆汽车,只需从工厂提货,而不需要关心汽车的制造过程及其内部实现。
b. Hibernate:更换数据库时,只需更改方言(Dialect)和数据库驱动(Driver),即可实现对不同数据库的切换。
2.2 简单工厂模式
简单工厂模式不是一个正式的设计模式,但它是工厂模式的基础。它使用一个单独的工厂类来创建不同的对象,根据传入的参数决定创建哪种类型的对象。
提供一个 修改方法的工厂,可以看作一个产品工厂,通过产品接口直接实例化一些需要的产品对象。
2.3 工厂方法
● 工厂方法提供了一种创建对象的方式,使得创建与使用对象的 过程分离。客户端代码使用一种创建对象的方式,而无需指定要创建的具体类,将对象的创建逻辑封装在一个工厂类中,而不是在客户端代码中直接实例化对象,这样可以提高代码的可维护性和可扩展性。
● 简单来说,就是父类提供创建对象的方法,允许子类决定实例化对象的类型。
● 一个创建对象的接口,很多子类继承这个接口,创建这个接口对象,但是实例化过程并不由调用者完成,而是将这个实例化创建过程延迟到子类,由子类决定实例化哪个具体的类。
●
2.4 抽象工厂
● 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
● 抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。
● 抽象工厂模式提供了一种创建一系列相关或相互依赖对象的接口,而无需指定具体实现类。通过使用抽象工厂模式,可以将客户端与具体产品的创建过程解耦,使得客户端可以通过工厂接口来创建一族产品。
使用场景
- 换皮肤时,一键换肤。
- 创建跨平台应用时,生成不同操作系统的程序。