刚刚看了一下工厂模式,通过这篇
http://blog.csai.cn/user1/25929/archives/2009/35622.html
基本明白了工厂模式是怎么回事。 这篇讲模式的文章还是写的比较好的,顺着他的思路,也觉得工厂模式是个好模式。
1简单工厂模式 其实就是把所有的生产对象的变化都写进了一个类的工厂方法里面。 只是如果有新的需求,这个万能类还是要改。
2工厂方法模式 就是每个产品都对应一个生成产品的工厂类,因为一个产品类对应一个工厂类,所有当然他知道自己应该怎么new,这样就不用判断了,再在这些工厂类上面加个抽象类(。。逻辑上应该是先有抽象类在先,这样想好像理解)。通过工厂类的多态避免了判断。
3抽象工厂模式 跟工厂方法模式 差不多。工厂方法模式的主要缺点是要写很多的工厂类出来。这个模式只是把某个系列的
工厂方法写到抽象工厂里面了。减少了类,多了方法。
但是后来想了想。似乎工厂模式也没什么很大的作用啊。
1工厂模式搞了这么多事目的不就是要生成一个多态的对象吗。比如有接口 Usb
我有个类Computer 里面要用到他。类这样设计
class Computer{
private Usb u;
//在弄个getter setter 省略
}
这样通过setter方法不是意义可以做到多态,为什么还要用工厂模式呢?
还有就是简单工厂模式似乎就很好了,如果用到泛型的话 如下
public static <T> T getOne(String className){
T t=null;
try {
t=(T)Class.forName(className);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return t;
}
这样就不需要 判断了。工厂模式还有个好处是可以其中管理生成的对象,用这个也可以管理。
小弟模式肯定是连门都没入的,所有会有很多幼稚的想法(我也不想的)。。。 但是非常欢迎大侠鄙视!
分享到:
相关推荐
抽象工厂模式是软件设计模式中的一种创建型模式,它的主要思想是提供一个接口,用于创建一系列相关或相互依赖的对象,而无需...同时,对于对设计模式感到困惑的人来说,这个实例可以作为深入理解抽象工厂模式的起点。
工厂模式是软件工程中广泛应用的一种创建型设计模式,它提供了一种抽象化的方式来创建对象,使得代码更加灵活且易于维护。 首先,文章指出在教授设计模式时存在的问题,即很多讲解过于抽象,容易使初学者感到困惑。...
本示例旨在帮助开发者深入理解工厂模式的概念和实际运用,对于那些对工厂设计模式感到困惑的朋友们,这将是一个很好的学习资源。 一、工厂模式介绍 工厂模式属于创建型设计模式,它的主要目的是为了解耦对象的创建...
在上述的MM生日的例子中,GG想要为MM的生日准备惊喜,但他对如何策划感到困惑。MM通过短信建议他们去麦当劳庆祝,但这次换一个地点,比如华联的麦当劳。这个例子虽然不是软件开发的直接场景,但它巧妙地展示了抽象...
- 工厂模式(Factory Pattern):定义一个用于创建对象的接口,让子类决定实例化哪一个类。 - 建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 - ...
1. 创建型模式:关注对象的创建过程,包括单例模式、工厂模式(简单工厂、工厂方法、抽象工厂)、建造者模式、原型模式等。它们帮助开发者控制实例化过程,减少对具体类的依赖。 2. 结构型模式:关注如何组合现有...
- **1.2 Abstract Factory模式**:抽象工厂模式提供了一个接口,用于创建一系列相关或相互依赖的对象,而无需指定它们具体的类。 - **1.3 Singleton模式**:确保一个类只有一个实例,并提供一个全局访问点。 - **...
创建模式主要关注对象的创建过程,分为工厂模式和工厂方法模式。 1. **工厂模式**:在这个模式中,客户端(如追MM的情景中的消费者)并不直接创建产品对象,而是通过工厂类来创建。这样做的好处是降低了客户端和...
Facade模式为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。这种模式适用于简化一个复杂子系统的接口,使得外部系统能够更容易地使用该子系统。 ####...
**应用场景**:当一个类不知道它所必须创建的对象的类的时候,或者当一个类希望由它的子类来指定它所创建的对象的时候,可以使用工厂模式。 **优点**: - 封装了对象的创建过程。 - 客户端不需要知道具体的实现细节...
此外,探讨诸如“为什么使用设计模式——从Singleton模式谈起”的话题,可以帮助我们更好地认识到设计模式在软件工程中的价值。 #### 总结 设计模式是软件设计领域中的一项重要技能,能够帮助开发者编写出更为优雅...
"SchoolManager[实体+接口+工厂+数据库]"项目显然采用了一些核心的面向对象编程概念,包括实体类、接口、工厂模式以及数据库交互。让我们逐一深入探讨这些知识点。 首先,**实体类**在软件开发中代表现实世界中的...
那么,为什么在性能测试中,单例模式的执行速度可能较慢呢?这可能源于以下几个因素: 1. **初始化成本**:单例在第一次被请求时会被初始化,这个过程可能包括了加载类、执行静态初始化块、实例化对象等步骤,这些...
工厂的运行需要完善的组织架构、管理模式和制度。制定全年的生产目标,根据订单制定主生产计划,进行产能供需调节,控制物料投入,解决生产中的障碍,确保品质、安全和员工收入的合理性,都是实现有效运行的必要步骤...
企业应该跳出传统思维,如单纯依赖“世界制造工厂”或“行业竞争优势”,而是探索如建立标准、连锁经营、品牌塑造、顾客关系、产品创新、市场份额控制、成本领先和技术领先等多元化发展模式。 最后,构建适当的能力...