必赢亚洲手机app下载


Jobs:关于苹果电脑 Flash 的沉思

常用高效软件分享

极速掌握设计情势系列

4个角色:指挥者(Director),建造者(Builder),具体建造者(ConcreteBuilder),产品(Product)
         产品:须求成立的靶子产品
        
具体建造者:创立产品的实例并且达成建造者多个措施对产品进行李装运配
        
建造者:本质为抽象类,里面包车型客车虚幻方法供具体建造者重写,评释产品的引用
         指挥者:调用建造者抽象类以及其格局

      
兑现思路:客户端创造三个总指挥,并且实例化供给的出品的现实建造者,然后指挥者调用具体建造者的实例即将产品生产出来。

 类图:

        苹果电脑 1

       
运用场景:在Silverlight中我们供给生产1列多行的输入框+TextBlock的组合,但是那一个输入框的品类分歧,有部分不得不输入2陆17个字符,有的只好输入二十一个字符,还有的是多行的,有的是单行的输入框。那么些输入框的项目是定点的,可是可能用户自定义输入框的时候大家转移的逐条和个别的浮动数量不晓得。

       
分析:在那里产品是一定的,有A,B,C,D,E,F多种输入框+TextBlock,用户恐怕生成的景色是A,A,C,C,B,B,C、也说不定是B,C,D,B,C,F。那里我们使用建造者情势,那三种输入框基本上都差不离,都是TextBlock+TextBox的格局。可是可输入数量和是还是不是多行是不定的,那么大家兑现AConcreteBuilder,BConcreteBuilder,CConcreteBuilder,DConcreteBuilder,EConcreteBuilder,FConcreteBuilder等多个具体建造者,然后对于建造者中只须求八个格局分别实例化产品,并且对产品的性质(可输入字符数、是或不是可多行)举办设置,然后再用户要求调用什么产品的时候,使用指挥者调用想要的ConcreteBuilder具体建造者即可。

        下面大家以七个电脑产品生产的实例来具体看看Builder
Pattern是怎么使用的:

        一、产品剧中人物

//产品
class
Computer
{
private string
m_CompName;
private string
m_MemorySize;
private string
m_DiskSize;

/// <summary>
/// 电脑名称
/// </summary>
public
string CompName
{
get { return
m_CompName; }
set { m_苹果电脑,CompName = value;
}
}

/// <summary>
/// 内部存款和储蓄器大小
/// </summary>
public
string MemorySize
{
get { return
m_MemorySize; }
set { m_MemorySize = value;
}
}

/// <summary>
/// 硬盘大小
/// </summary>
public
string DiskSize
{
get { return
m_DiskSize; }
set { m_DiskSize = value;
}
}
/// <summary>
/// 呈现产品的音信
/// </summary>
public
void ShowComputerInfo()
{
Console.WriteLine(“————————“);
Console.WriteLine(“电脑名称:”

  • CompName);
    Console.WriteLine(“内存大小:”
  • MemorySize);
    Console.WriteLine(“硬盘大小:”
  • DiskSize);
    }
    }

        二、建造者剧中人物

//建造者
定义建造产品的空洞方法和制品的引用
abstract
class ComputerBuilder
{
private Computer computerInstance;

/// <summary>
/// 重临建立的电脑产品实例
/// </summary>
public
Computer ComputerInstance
{
get { return
computerInstance; }
set { computerInstance=value; }
}

/// <summary>
/// 创制电脑名称
/// </summary>
abstract
public void
CreateCompName();

/// <summary>
/// 创设电脑内部存款和储蓄器
/// </summary>
abstract
public void
CreateCompMemory();

/// <summary>
/// 创制电脑硬盘
/// </summary>
abstract
public void
CreateCompDisk();

}

        3、具体建造者剧中人物

//具体建造者创设苹果电脑
class
AppleConcreteBuilder : ComputerBuilder
{

public override
void CreateCompName()
{
ComputerInstance = new
Computer();
ComputerInstance.CompName =
“苹果电脑”;
}

public override
void CreateCompMemory()
{
ComputerInstance.MemorySize =
“4G”;
}

public override
void CreateCompDisk()
{
ComputerInstance.DiskSize =
“500G”;
}
}

//具体建造者创制戴尔电脑
class
DellConcreteBuilder : ComputerBuilder
{

public override
void CreateCompName()
{
ComputerInstance = new
Computer();
ComputerInstance.CompName =
“戴尔电脑”;
}

public override
void CreateCompMemory()
{
ComputerInstance.MemorySize =
“2GB”;
}

public override
void CreateCompDisk()
{
ComputerInstance.DiskSize =
“320GB”;
}
}

//具体建造者创立雷蛇计算机
class
HpConcreteBuilder : ComputerBuilder
{

public override
void CreateCompName()
{
ComputerInstance = new
Computer();
ComputerInstance.CompName =
“Lenovo处理器”;
}

public override
void CreateCompMemory()
{
ComputerInstance.MemorySize =
“1GB”;
}

public override
void CreateCompDisk()
{
ComputerInstance.DiskSize =
“160GB”;
}
}

//具体建造者创立IBM电脑
class
IBMConcreteBuilder : ComputerBuilder
{

public override
void CreateCompName()
{
ComputerInstance = new
Computer();
ComputerInstance.CompName =
“IBM电脑”;
}

public override
void CreateCompMemory()
{
ComputerInstance.MemorySize =
“2G”;
}

public override
void CreateCompDisk()
{
ComputerInstance.DiskSize =
“1000G”;
}
}

        4、指挥者剧中人物

//指挥者
class
CreateDirector
{
/// <summary>
/// 调用建造者抽象方法以生育成品
/// </summary>
/// <param
name=”compBuilder”></param>
public
void CreateComputer(ComputerBuilder compBuilder)
{
compBuilder.CreateCompName();
compBuilder.CreateCompMemory();
compBuilder.CreateCompDisk();
}
}

       
如需源码请点击 BuilderPattern.zip
下载。

相关文章

No Comments, Be The First!
近期评论
    功能
    网站地图xml地图