工厂模式 “编程是一门技术,更是一门艺术,不能只满足于写完代码运行结果正确就完事,时常考虑如何让代码更加简练,更加容易维护,容易扩展和复用,只有这样才可以得到真正提高。”—引自《大话设计模式》一书。 何谓工厂,工厂就是生产产品的地方。它负责生产产品而不负责设计和定义产品。在设计模式中的工厂是一个专门负责创造实例的单独的一个类,它不负责产生实例的类的设计与定义。工厂模式封装了对象创建的过程,使类的定义与实例化分开(这样做的具体好处我还没想清楚…)。 目前我知道的工厂模式有三种:简单工厂模式,工厂方法模式,抽象工厂模式。 简单工厂模式,在该模式的类中一般会有多个类之间实例化存在冲突的情况,所以它具有“逻辑判断”以达到动态生成对象解决冲突的目的。(该工厂最终只产生一个类的实例,即该工厂最终只产生一种产品) 工厂方法模式,定义一个用于创建对象的接口,让子类决定实例化哪一个类,它使一个类的实例化延迟到子类。其实是将简单工厂模式中的多个类的实例化过程转移到具体的工厂内,使每个类的实例化过程都对应一个具体的工厂。它与简单工厂类相比是将原本存在于工厂内部的逻辑判断消除,并将它转移到客户端。它修正了“简工模”中如果项目添加功能会破坏开放—封闭设计原则的缺点。(每个具体的工厂最终只产生一个类的实例,即该工厂最终只产生一种产品) 抽象工厂模式,该模式提供一个创建一系列相关和相互依赖对象的接口,而无需指定他们具体的类。我认为其实质就是在工厂方法模式中的工厂类中加入可以共存的类的实例化过程,由原来的一个实例化过程变为多个。(每个具体的工厂最终可以产生多个产品)
工厂模式
最新推荐文章于 2024-08-17 15:55:28 发布