您的位置:首页 > 其它

设计模式01(创建性设计模式)

2015-01-14 12:35 253 查看
简单列出这几个设计模式所包含的部分

1. 简单工厂模式

1.1 基类

1.2 方法类:通过基类,实现业务的方法类

1.3 业务类:根据业务传递过来的字符,判断需要创建对应的方法类

1.4 前台:前台调用业务类,传递1.3所需的字符

2.工厂模式

2.1 接口:创建统一的工厂操作接口(这个工厂需要生产的东西,比如对象,或者实现的方法)

2.2 基类

2.3 方法类:通过基类,实现业务的方法类,

2.4 业务类:将不用业务需要的字符,创建实现接口的业务类,业务类调用该业务的方法

2.5 前台:前台调用业务类

3.抽象工厂

3.1 接口:创建统一的工厂操作接口(这个工厂需要生产的东西,比如对象,或者实现的方法)

3.2 基类

3.3 方法类:通过基类,实现业务的方法类,

业务类:将不用业务需要的字符,创建实现接口的业务类,这里不使用new来直接操作方法类,通过反射来实现对象的创建。

private static readonly string AssemblyName = "AdstractFactory";
private static readonly string db = "Sqlserver";

public static IUser CreateUser()
{
string className = AssemblyName + "." + db + "User";
return (IUser)Assembly.Load(AssemblyName).CreateInstance(className);
}


3.4 前台:前台调用业务类

4.原型模式

原型模式包含两部分浅复制和深复制

4.1 浅复制:在本类中提供一个方法Clone,如果类中全是值类型,则只需MemberwiseClone浅复制就行

/// <summary>
/// 浅复制
/// </summary>
/// <returns></returns>
public object Clone()
{
return this.MemberwiseClone();
}


4.2 深复制:本类中如果存在引用类型,则需深复制,在本类中提供一个私有构造函数,复制本类的引用类型,提供一个Clone,全部重新复制本类

private Prototype(Hobby _hobby)
{
this.Hobby = (Hobby)_hobby.Clone();
}
/// <summary>
/// 深复制
/// </summary>
/// <returns></returns>
public Prototype Clone()
{
Prototype pro=new Prototype(this.Hobby);
pro.ID = this.ID;
pro.Name = this.Name;
return pro;
}


5.创建者模式

5.1 创建者接口:创建需要实现的方法(工序的过程)

5.2 方法类:实现接口

5.3 指挥者:根据产品特点,完成组装,对外提供可选的产品。

创建者模式和工厂很相似,不同的是创建者模式,有一个指挥者,最后提供一个结果

6.单例模式

6.1 懒汉式单例:使用双层判断,创建全局唯一的访问变量

public static Singleton Instance
{
get
{
if (_Instance == null) //双重锁定
{
lock (syncRoot)
{
if(_Instance==null)
_Instance = new Singleton();
}
}
return _Instance;
}
}


6.2 饿汉式单例:使用公共语言时,在初始化的时候用readonly,和static来创建对象

private static  readonly Singleton01 _Instance=new Singleton01();

private Singleton01()
{
}
public static Singleton01 Instance
{
get
{
return _Instance;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: