工厂是用来生产一个一个实例的,这模式就因此而得名。
一般产生一个对象的方法是用new,这大家都知道。Demo d = new Demo();
但当很多对象都需要创建是,语句就变得很繁琐:
Demo1 d1 = new Demo1();
Demo2 d2 = new Demo2();
Demo3 d3 = new Demo3();
……
Demon dn = new Demon();
这时可以考虑用工厂模式,写一个方法来制造你所需要的对象:
public class Factory{
public static Demo getInstance(int which){
//getClass 产生Sample 一般可使用动态类装载装入类。
if (which==1)
return new Demo1();
else if (which==2)
return new Demo2();
} //返回的都是Demo的子类
}
从网上盗了张图片过来解释这个模式:
但当要生产的对象比较复杂,比如一个工厂里面生产的某两种对象之间有联系,另外两种对象之间也有联系。上面这种方法就不太好了。
这时可以用抽象工厂,举个例子:
public abstract class Factory{
public abstract Demo create(int which);
public abstract Demo create2(int which);
}
/**
* 各种猫和老鼠的制造厂
* 猫和老鼠都是Demo的子类
*/
public class CatMiceFactory extends Factory{
public Demo create(int which){ //which 指哪种猫
if(……)
.........
return new Cat_n();
}
public Demo create2(int which){
if(……)
.........
return new Mice_n();
}
}
/**
* 各种猴子和香蕉的制造厂
* 猴子和香蕉都是Demo的子类
*/
public class BombFactory extends Factory{
public Sample create(int which){
if(……)
......
return new Mokey_n();
}
public Demo creat2(int which){
if(……)
......
return new Banana_n();
}
}
如果把这两种工厂混为一谈的话,create方法制造出来的可能是猫,create2方法制造出来的可能是香蕉,但猫不吃香蕉呀,所以这就会产生混乱。这里抽象工厂就起到了比较大的作用。
- 大小: 40 KB
分享到:
相关推荐
Java设计模式中的工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。工厂模式的核心思想是将对象的创建过程封装起来,使得创建过程独立于使用过程,从而提高了代码的可扩展性和可维护性。在HeadFirst...
在这些模式中,工厂模式尤为突出,它是一种创建型设计模式,为对象的创建提供了抽象接口,使得代码无需直接实例化具体类,而是通过工厂方法来创建对象。 在Java编程语言中,工厂模式的应用广泛且实用。它主要分为三...
创建型设计模式---工厂设计模式实现
《C++设计模式--基于Qt4开源跨平台开发框架》一书主要探讨了如何在C++编程中利用设计模式,并结合Qt4框架进行高效的跨平台应用开发。设计模式是软件工程中的重要概念,它们是经过时间和实践验证的解决特定问题的模板...
在标题“c++设计模式-工厂方法模式”中,我们关注的是如何在C++中实现工厂方法这一设计模式。工厂方法模式的核心思想是定义一个创建对象的接口,但让子类决定实例化哪一个类。这样,工厂方法可以使类的实例化过程...
JAVA-设计模式-创建型模式-工厂模式
java设计模式----抽象工厂模式,简单工厂模式代码 代码内部
NET设计模式--工厂方法例子源码
设计模式专题之(三)抽象工厂模式---设计模式抽象工厂模式示例代码(python--c++)
抽象工厂模式是设计模式中的一种创建型模式,它提供了一个创建对象族的接口,而无需指定它们的具体类。在.NET开发中,这种模式常用于实现多数据库连接,比如连接到MySQL、SQL Server或Oracle等不同的数据库系统。...
工厂模式是设计模式中的一个基础且重要的部分,它属于创建型设计模式,主要用于封装对象的创建过程,使得客户端不必关心具体的实现细节,提高了代码的可扩展性和可维护性。 工厂模式主要有三种形式:简单工厂模式、...
工厂方法模式是设计模式中的经典之作,它通过封装创建细节,使得系统的对象创建更加灵活和可扩展。结合反射机制和配置文件的使用,这种模式能够更加动态地适应变化的需求,而无需修改现有的代码结构。在实际开发过程...
《设计模式——工厂模式》 在软件工程领域,设计模式是一种在特定情境下解决常见问题的模板,它为程序员提供了一种标准的解决方案。工厂模式是面向对象设计中最为人熟知的设计模式之一,属于创建型模式,其主要目标...
设计模式通常分为三类:创建型模式(如工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式),结构型模式(如适配器模式、装饰器模式、代理模式、桥接模式、组合模式、外观模式、享元模式)以及行为型模式(如...
在软件设计模式中,工厂模式是一组非常基础且实用的设计模式,主要分为简单工厂模式、工厂方法模式和抽象工厂模式。这些模式都是为了解决对象创建的问题,通过封装对象的创建过程,使得代码更加灵活,易于扩展和维护...
Java设计模式中的工厂模式是一种创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,当客户端请求创建一个产品对象时,它不会直接创建,而是调用一个工厂对象来完成创建工作。这种模式的核心在于封装了对象...
工厂模式是设计模式中的一种创建型模式,它的主要目的是为了隔离对象的创建过程,使得客户端代码无需关心具体对象的创建细节,只需通过一个统一的接口来获取所需的对象。 在Java编程语言中,工厂模式通常分为简单...
2. **工厂模式** - QT4的QObject类及其子类提供了一种动态对象创建的方式,通过`QObject::createObject`或`QMetaObject::newInstance`可以实现工厂模式,这在处理插件或者动态加载类时非常有用。 3. **观察者模式**...