`
huangxuan2046
  • 浏览: 9987 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

工厂模式的困惑,为什么要使用工厂模式

阅读更多
刚刚看了一下工厂模式,通过这篇
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;
	}

这样就不需要 判断了。工厂模式还有个好处是可以其中管理生成的对象,用这个也可以管理。
小弟模式肯定是连门都没入的,所有会有很多幼稚的想法(我也不想的)。。。  但是非常欢迎大侠鄙视!
分享到:
评论
1 楼 mallon 2009-09-18  
不用理解设计模式是做什么用的,只需要用的时候能够想到它就行了,因为设计模式本质上仅仅是简化编码的技巧或者工具

相关推荐

    抽象工厂模式 设计模式中创建型之抽象工厂模式

    抽象工厂模式是软件设计模式中的一种创建型模式,它的主要思想是提供一个接口,用于创建一系列相关或相互依赖的对象,而无需...同时,对于对设计模式感到困惑的人来说,这个实例可以作为深入理解抽象工厂模式的起点。

    由浅入深学工厂模式.doc

    工厂模式是软件工程中广泛应用的一种创建型设计模式,它提供了一种抽象化的方式来创建对象,使得代码更加灵活且易于维护。 首先,文章指出在教授设计模式时存在的问题,即很多讲解过于抽象,容易使初学者感到困惑。...

    C#工厂模式应用源代码

    本示例旨在帮助开发者深入理解工厂模式的概念和实际运用,对于那些对工厂设计模式感到困惑的朋友们,这将是一个很好的学习资源。 一、工厂模式介绍 工厂模式属于创建型设计模式,它的主要目的是为了解耦对象的创建...

    抽象工厂模式_MM的生日.pdf

    在上述的MM生日的例子中,GG想要为MM的生日准备惊喜,但他对如何策划感到困惑。MM通过短信建议他们去麦当劳庆祝,但这次换一个地点,比如华联的麦当劳。这个例子虽然不是软件开发的直接场景,但它巧妙地展示了抽象...

    C设计模式_程序设计.rar C设计模式_程序设计.rar

    它可能包含了对多种设计模式的详尽解析和实例应用,其中可能涵盖了单例模式、工厂模式、装饰器模式、观察者模式等经典的设计模式。这些模式在C语言的编程实践中有着不可忽视的应用价值。比如,单例模式用于确保一个...

    常用Java设计模式及其应用场景与实战案例详解

    内容概要:本文深入浅出地介绍了Java中最常见的8种设计模式:单例模式、工厂模式、策略模式、代理模式、观察者模式、装饰器模式、模板方法模式和建造者模式。每种设计模式都有具体的工作场景应用和实战代码案例,并...

    java与模式

    - 工厂模式(Factory Pattern):定义一个用于创建对象的接口,让子类决定实例化哪一个类。 - 建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 - ...

    软件设计模式

    1. 创建型模式:关注对象的创建过程,包括单例模式、工厂模式(简单工厂、工厂方法、抽象工厂)、建造者模式、原型模式等。它们帮助开发者控制实例化过程,减少对具体类的依赖。 2. 结构型模式:关注如何组合现有...

    设计模式--可复用面向对象软件的基础

    对于初学者来说,面对多种多样的设计选择可能会感到困惑,而设计模式为他们提供了一套经过验证的解决方案。有经验的开发者在遇到相似问题时可以直接应用这些模式,从而节省时间和精力。 #### 三、设计模式的核心...

    设计模式精解-GoF 23种设计模式解析

    - **1.2 Abstract Factory模式**:抽象工厂模式提供了一个接口,用于创建一系列相关或相互依赖的对象,而无需指定它们具体的类。 - **1.3 Singleton模式**:确保一个类只有一个实例,并提供一个全局访问点。 - **...

    JAVA设计模式与追MM

    创建模式主要关注对象的创建过程,分为工厂模式和工厂方法模式。 1. **工厂模式**:在这个模式中,客户端(如追MM的情景中的消费者)并不直接创建产品对象,而是通过工厂类来创建。这样做的好处是降低了客户端和...

    设计模式精解-GoF23种设计模式解析

    Facade模式为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。这种模式适用于简化一个复杂子系统的接口,使得外部系统能够更容易地使用该子系统。 ####...

    GoF23种设计模式解析.pdf

    **应用场景**:当一个类不知道它所必须创建的对象的类的时候,或者当一个类希望由它的子类来指定它所创建的对象的时候,可以使用工厂模式。 **优点**: - 封装了对象的创建过程。 - 客户端不需要知道具体的实现细节...

    设计模式精解-GoF 23种设计模式解析附C++实现源码

    此外,探讨诸如“为什么使用设计模式——从Singleton模式谈起”的话题,可以帮助我们更好地认识到设计模式在软件工程中的价值。 #### 总结 设计模式是软件设计领域中的一项重要技能,能够帮助开发者编写出更为优雅...

    SchoolManager[实体+接口+工厂+数据库]

    "SchoolManager[实体+接口+工厂+数据库]"项目显然采用了一些核心的面向对象编程概念,包括实体类、接口、工厂模式以及数据库交互。让我们逐一深入探讨这些知识点。 首先,**实体类**在软件开发中代表现实世界中的...

    我做了个简单的性能测试,发现从bean工厂里单例执行方法效率比new对象执行慢很多

    那么,为什么在性能测试中,单例模式的执行速度可能较慢呢?这可能源于以下几个因素: 1. **初始化成本**:单例在第一次被请求时会被初始化,这个过程可能包括了加载类、执行静态初始化块、实例化对象等步骤,这些...

    制造业工厂管理如何实现信息化.doc

    工厂的运行需要完善的组织架构、管理模式和制度。制定全年的生产目标,根据订单制定主生产计划,进行产能供需调节,控制物料投入,解决生产中的障碍,确保品质、安全和员工收入的合理性,都是实现有效运行的必要步骤...

Global site tag (gtag.js) - Google Analytics