一、工厂模式的概念
工厂模式是一种创建型设计模式
工厂模式提供了一种创建对象的最佳方式。
二、工厂模式的意义(优点)
2.1 提供更好的灵活性
它提供更好的灵活性。它允许我们根据需要创建对象。
2.2 降低代码的耦合性
客户端代码只需要知道工厂接口,而不需要知道具体的产品实现。
2.3 适用于复杂的应用程序
当应用程序需要创建多个对象时,它可以避免重复的代码,提高代码的复用性。
2.4 支持异构框架
2.5 提高性能
由于工厂模式可以缓存对象,因此它可以避免重复创建对象。
三、工厂模式的三种形式
工厂模式分为三种形式:简单工厂模式、工厂方法模式和抽象工厂模式。
在实际应用中,根据不同的需求,可以选择使用不同形式的工厂模式来实现对象的创建。
四、 简单工厂模式(静态工厂方法模式)
又称为静态工厂方法模式,根据参数的不同返回不同的实例。
简单工厂模式是一种最简单的工厂模式,其中只有一个类用于创建对象,并且该类不需要子类。简单工厂模式可以用来解决简单的创建对象的问题,但是如果需要创建多个不同类型的对象,则需要创建多个不同的工厂类,这会导致类的数量增加,代码的可维护性变差。
五、工厂方法模式
5.1 工厂方法模式是什么?
工厂方法模式是一种更加抽象的工厂模式
5.2 工厂方法模式的原理
定义一个用于创建对象的接口,让子类决定实例化哪一个类。
工厂类的抽象方法用于创建对象,而具体的创建过程则由子类实现。
5.3 工厂方法模式解决的问题
工厂方法模式可以用来解决创建多个不同类型的对象的问题,同时可以保证所有的对象都是由同一个工厂类创建的,从而保证了对象的一致性。
六、抽象工厂模式
6.1 抽象工厂模式是什么?
抽象工厂模式是一种更加抽象的工厂模式
抽象工厂模式是对 工厂方法模式的再次抽象
6.2 抽象工厂模式的原理
抽象工厂模式创建一系列相关或互相依赖的对象,不需要指定它们具体的类。
抽象工厂模式将对产品的创建升级成对产品类型的创建,那么就可以从该模式中获取某一类型的产品,然后从该类型的产品中获取该类型的具体产品,从而实现产品创建的高度抽象。这么以来,能从工厂中获取的产品的范围更广。
抽象工厂模式,其中工厂类提供了一个接口,用于创建多个相关或依赖对象的族群。
6.3 抽象工厂模式解决的问题
抽象工厂模式可以用来解决创建多个相关或依赖对象的问题,同时可以保证这些对象的创建过程是相互独立的,从而使得代码的可维护性更好。
6.4 抽象工厂的角色
抽象工厂:负责产品族的声明,这些产品族由其实现类实现。
抽象产品:目标产品族,由具体工厂实现其要返回的子类的具体类型以此实现产品族的派生功能。
具体工厂:分类实现抽象工厂中声明的产品族产品,一个具体的工厂只生产某个产品族的一个子类型的产品
具体产品:产品的最终目标。由具体工厂以抽象工厂中声明的产品族决定其产品类型。