抽象工厂,最简单的设计模式,相信大家每天都在使用。
通俗点介绍,先从工厂模式开始。工厂模式,很简单,工厂就生产东西的地方。这里当然是生产对象了。在遥远原始社会,我们需要一个对象,都是new出来的,相当与自己动手做的。
比如 要一条鱼 Fish f1=new Fish();一条鱼就来了,现在有了工厂,鱼就来的容易了,Fish f1=Factory.getFish();看鱼来的容易多了,不用去new了,问Factory要(getFish())。简单吧,相信你以前也用过,只不过不知道叫工厂模式罢了。
好了,接下来解释一下抽象工厂,顾名思义,这个工厂是抽象的,上面我们看到的Factory是一个对象(或者静态类),他是我们编写用来产生鱼的。
public static class Factory
{
public static FishgetFish()
{}
}
随便写下(有语法错误,别怪我哦),抽象工厂中,这个Factory是个抽象类,也不是具体的,Factory我们把他当作一个市场,可能是菜市场FactoryCai、花鸟市场FactoryNiao、也可能是钓鱼场FactoryDiao,反正是不确定的,现在我的需求还是一条鱼,不同的市场给出不同的鱼,按照原始社会做法,应该是
Fish f1=FactoryCai.getFish();//我要一条黄鱼
Fish f2=FactoryNiao.getFish();//我要一条金鱼(鲸鱼,买不起)
Fish f3=FactoryDiao.getFish();//我要一条我钓得起来的鱼
既然FactoryCai,FactoryNiao,FactoryDiao都是继承于Factory,那为什么不写Fish f1=Factory.getFish(x);//到底是返回什么鱼,由传入的参数x来决定,
这就是抽像工厂,简单吧,呵呵。
为什么要写成抽象工厂的模式,我想说明一下:
1.可以少改代码,我一向认为只要改了代码就需要花大量的成本(时间、金钱)进行测试...
2.能隔离要生成的具体对象,也就是松耦合。这样做的好处是,可以自由改动、增加这些具体的类(FactoryCai)。
完整代码不想写了,抽象工厂模式实在太简单了,实在有问题发我email拉。
分享到:
相关推荐
抽象工厂(Abstract Factory)模式是设计模式中的一种创建型模式,它提供了一种...在阅读提供的博客文章《AbstractFactory 抽象工厂》和研究压缩包中的相关文件时,你可以深入学习到更多关于这个模式的实践和应用场景。
**抽象工厂模式(Abstract Factory Pattern)是创建型设计模式之一,它提供了一种创建对象的接口,使得子类可以决定实例化哪一个类。这种类型的设计模式属于类的创建模式。** 在C#中,抽象工厂模式的核心在于抽象...
Abstract_Factory抽象工厂Abstract_Factory抽象工厂Abstract_Factory抽象工厂Abstract_Factory抽象工厂
1. **抽象工厂接口(Abstract Factory)**:定义一个创建对象的接口,但不指定具体的实现。在C#中,这通常表现为一个接口,如`IAbstractFactory`。 2. **具体工厂类(Concrete Factory)**:实现了抽象工厂接口,...
1. **抽象工厂(Abstract Factory)**:定义一个创建对象的接口,但不指定具体的实现。在C#中,这通常表现为一个接口,如`IAbstractFactory`。 2. **具体工厂(Concrete Factory)**:实现了抽象工厂接口,负责创建...
抽象工厂模式(Abstract Factory)是一种创建型设计模式,用于提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。这种模式的关键在于,它允许客户端代码与具体的实现细节解耦,使得添加新的产品...
抽象工厂(Abstract Factory)模式是一种创建型设计模式,它提供了一种创建对象的接口,但允许子类决定实例化哪一个类。这种模式是基于对象的抽象,而不是具体的类,因此,它允许创建一系列相关的对象,而无需指定...
1. 抽象工厂(Abstract Factory):这是模式的核心,它是一个接口或抽象类,定义了一系列创建对象的方法,但并不直接实例化具体的对象。这些方法用于创建一系列相关或相互依赖的对象。 2. 具体工厂(Concrete ...
1. **模式结构**:抽象工厂模式通常包括抽象工厂接口(AbstractFactory),具体工厂类(ConcreteFactory),抽象产品接口(Product)以及具体产品类(ConcreteProduct)。抽象工厂定义了创建产品的方法,而具体工厂...
这个压缩包“C# 抽象工厂 AbstractFactory.rar”可能包含了一个关于如何在C#中实现抽象工厂模式的实例或教程。 抽象工厂模式是一种创建型设计模式,它提供了一种创建对象族的方式,而无需指定具体类。在C#中,这种...
抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它提供了一种创建对象集合的接口,而无需指定具体的产品类型。这种模式适用于当系统需要在不同平台或环境中创建一组相关或相互依赖的对象时,而这些...
在“AbstractFactory.rar”这个压缩包中,我们可以预想包含了一个简单的示例,用来演示抽象工厂模式的基本概念和应用。 抽象工厂模式的核心在于“工厂”,在软件工程中,工厂是负责创建对象的类或接口。在这个具体...
在这个例子中,`AbstractProductA`和`AbstractProductB`是抽象产品,`ConcreteProductA1/A2`和`ConcreteProductB1/B2`是具体产品,`AbstractFactory`是抽象工厂,`ConcreteFactory1/2`是具体工厂。客户端代码通过...
1. 抽象工厂(Abstract Factory):这是模式的核心,定义了一组创建对象的接口,客户端通过这个接口请求创建所需的产品。这个接口不直接创建产品,而是将产品创建的职责委托给具体工厂。 2. 具体工厂(Concrete ...
### 抽象工厂模式(Abstract Factory Pattern) #### 引入 在探讨抽象工厂模式之前,我们先回顾一下之前介绍过的简单工厂模式与工厂方法模式。这两种模式主要关注于解决对象创建过程中“new”操作的问题,使得创建...
1. **抽象工厂接口(Abstract Factory)**:定义了一系列产品的创建方法,例如`NWFactory`可能是这个抽象工厂的实现,它包含了创建人和动物的方法。 2. **具体工厂类(Concrete Factory)**:实现了抽象工厂接口,...
在软件设计模式中,工厂方法(Factory Method)和抽象工厂(Abstract Factory)是两种非常重要的创建型模式。它们主要用于解决对象实例化的问题,提供了一种封装对象创建过程的方法,使得代码更加灵活,易于扩展和...
抽象工厂(Abstract Factory)设计模式是软件工程中一种重要的创建型设计模式,它提供了一种创建对象组的方式,这些对象属于同一族系并且彼此相关。这个模式的主要目标是定义一个接口,用于创建一族相关或相互依赖的...
Java设计模式是面向对象编程...在阅读《Chapter1___Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)》的相关资料时,你可以更深入地学习这些模式的细节,包括适用场景、优缺点以及如何在实际项目中实现。