标签:
这是记录设计模式种的创建型模式的第一篇,所以,在开头要说一些关于创建型模式的含义和意义。 创建型模式软件系统在运行时,类将被实例化成东西,并由这些被创建的东西协作完成系统中要求的各项业务成果,创建型模式存眷东西的创建过程,是一类最常用的设计模式,在软件开发种的应用非常广泛。创建型模式对类的实例化过程进行了抽象,能够将软件中东西的创建和使用疏散,对用户隐藏了类的实例的创建细节。
创建型模式描述如何将东西的创建和使用疏散,让用户让用户在使用东西时无须关心东西的创建细节,从而降低系统的耦合度,让设计方案更易于改削和扩展。每一个创建型模式都给与差此外解决方案来回答三个问题:创建什么(what)、由谁创建(who)、何时创建(when)。
在GOF设计模式种,包罗5种创建型的模式,凡是将一种非GOF设计模式----简单工厂模式作为学习其他工厂模式的根本,这6种创建型模式的名称、界说、学习难度和使用频率如下:
①简单工厂模式:界说一个工厂类,他可以按照参数的差别返回差别类的实例,被创建的实例凡是都具有配合的父类。学习难度:★★☆☆☆,使用频率:★★★☆☆;
②工厂要领模式:界说一个用于创建东西的接口,但是让子类决定将哪一个类实例化。工厂要领模式让一个类的实例化延迟到其子类。学习难度:★★☆☆☆,使用频率:★★★★★;
③抽象工厂模式:供给一个创建一系列相关或彼此依赖东西的接口,而无须指定他们的具体的类。学习难度:★★★★☆,使用频率:★★★★★;
④建造者模式:讲一个庞大东西的构建与它的暗示疏散,使得同样的构建过哦成可以创建差此外暗示。学习难度:★★★★☆,使用频率:★★☆☆☆;
⑤原型模式:使用原型实例指定待创建东西的类型,并且通过复制这个原型来创建新的东西。学习难度:★★★☆☆,使用频率:★★★☆☆;
⑥单利模式:确保一个类只有一个实例,并供给一个全局的访谒点来访谒这个独一的实例。学习难度:★☆☆☆☆,使用频率:★★★★☆;
简单工厂模式
简单工厂模式没有包罗在GOF的23种设计模式种,但是凡是将它作为学习其他创建类模式的开头。
作为最简单的设计模式之一,简单工厂模式的设计思想和实现过程都对照简单,其根基的实现流程如下:
简单工厂的界说如下:界说一个工厂类,他可以按照参数的差别返回差此外实例,被创建的实例凡是都具有配合的父类。由于在简单工厂模式种用于创建实例的要领凡是时静态要领,,所以简单工厂模式又被称为“静态工厂模式”,他是一种类创建型模式。简单工厂模式的要点在于:如果需要什么,只需要传入一个正确的参数,就可以获取所需要的东西,而无须知道其创建细节。
下面来看一个例子:
农场要成立一个直销工厂来发卖各类差此外水果,客户只需要报告工厂水果的名字,工厂就会给客户快递相应的水果。我们按照前述提到的法式,来逐步成立这个模型:
一、首先我们成立各类水果类:
public class Apple { public Apple() { Console.WriteLine("apple"); } } public class Orange { public Orange() { Console.WriteLine("Orange"); } } public class Bnana { public Bnana() { Console.WriteLine("Bnana"); } }
这里就成立了几个水果类。接下来我们吧这些产品抽象出来,成立一个具体类的抽象层,这种方法利于扩展,也切合开闭原则。在第二步种我们实际上对代码进行了重构,将具体的类型都重组成抽象类的子类了。实际上我们的代码在其生命周期中会不停的被重构,这也是软件开发的一个法则。
二:成立抽象层然后将具体的水果类担任到这个抽象层下面
public abstract class Fruit { }