C#设计模式之我见(二)Ⅱ
下面介绍一下建造者模式(Builder Pattern),代码实例如下:
Builder类:
public abstract class Builder
{
public abstract void BuildDoor();
public abstract void BuildWall();
public abstract void BuildWindows();
public abstract void BuildFloor();
public abstract void BuildHouseCeiling();
public abstract House GetHouse();
}
Director类:
public class Director
{
public void Construct(Builder builder)
{
builder.BuildWall();
builder.BuildHouseCeiling();
builder.BuildDoor();
builder.BuildWindows();
builder.BuildFloor();
}
}
ChineseBuilder类:
public class ChineseBuilder:Builder
{
private House ChineseHouse = new House();
public override void BuildDoor()
{
Console.WriteLine("this Door 's style of Chinese");
}
public override void BuildWall()
{
Console.WriteLine("this Wall 's style of Chinese");
}
public override void BuildWindows()
{
Console.WriteLine("this Windows 's style of Chinese");
}
public override void BuildFloor()
{
Console.WriteLine("this Floor 's style of Chinese");
}
public override void BuildHouseCeiling()
{
Console.WriteLine("this Ceiling 's style of Chinese");
}
public override House GetHouse()
{
return ChineseHouse;
}
}
下面介绍创建性模式里的最后一种模式--原型模式(Protype Pattern),用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
浅拷贝和深拷贝之间的区别:浅拷贝是指将对象中的数值类型的字段拷贝到新的对象中,而对象中的引用型字段则指复制它的一个引用到目标对象。如果改变目标对象中引用型字段的值他将反映在原是对象中,也就是说原始对象中对应的字段也会发生变化。深拷贝与浅拷贝不同的是对于引用的处理,深拷贝将会在新对象中创建一个新的和原是对象中对应字段相同(内容相同)的字段,也就是说这个引用和原是对象的引用是不同的,我们在改变新对象中的这个字段的时候是不会影响到原始对象中对应字段的内容。所以对于原型模式也有不同的两种处理方法:对象的浅拷贝和深拷贝。在FCL中的System命名空间下面有一个浅拷贝的方法叫:MemberwiseClone它是创建当前Obj
浙公网安备 33010602011771号