国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

創造設計模式

2019-11-09 14:47:34
字體:
來源:轉載
供稿:網友
此設計模式提供了根據項目要求創建類的對象的方法。這意味著您可以控制應用程序中對象的創建和生命周期。正如我們在上一篇文章中已經討論過的不同的創造性設計模式,讓我們回憶一下下面的創造性模式,然后我們將在后面討論不同類型的創造性模式。單身設計模式SingletonSingleton設計模式確保一個類在應用程序中只有一個實例,并且它只提供訪問該對象的運行實例的一個訪問點(全局訪問點)。工廠模式工廠模式確保您可以使用工廠方法(靜態方法)而不是使用new運算符來創建類的對象,以便可以控制該特定對象使用的所有對象和內存。Sample sample=new Sample();抽象工廠抽象工廠模式是一組工廠類,我們可以根據我們的要求使用/實現新的工廠類。然后我們可以派生一個新的類形式新創建的工廠類,而不是直接從抽象工廠類派生。
public abstract class Factory{    public abstract Sample creator();    public abstract Sample2 creator(String name);}public class SimpleFactory extends Factory{    public Sample creator(){        .........        return new SampleA    }    public Sample2 creator(String name){        .........        return new Sample2A    }} public class BombFactory extends Factory{    public Sample creator(){        ......        return new SampleB    }    public Sample2 creator(String name){        ......        return new Sample2B    }}建造者模式Builder模式確保,當我們創建一個復雜的對象時,它使用一步一步的創建過程,最后一步返回類的對象。
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Collections;namespace Building{    // Builder pattern -- Structural example  // "Director"class Director{  // Methods  public void Construct( Builder builder )  {    builder.BuildPartA();    builder.BuildPartB();  }}// "Builder"abstract class Builder{  // Methods  abstract public void BuildPartA();  abstract public void BuildPartB();  abstract public PRoduct GetResult();}// "ConcreteBuilder1"class ConcreteBuilder1 : Builder{  // Fields  private Product product;  // Methods  override public void BuildPartA()  {    product = new Product();    product.Add( "PartA" );  }  override public void BuildPartB()  {    product.Add( "PartB" );  }  override public Product GetResult()  {    return product;  }}// "ConcreteBuilder2"class ConcreteBuilder2 : Builder{  // Fields  private Product product;  // Methods  override public void BuildPartA()  {    product = new Product();    product.Add( "PartX" );  }  override public void BuildPartB()  {    product.Add( "PartY" );  }  override public Product GetResult()  {    return product;  }}// "Product"class Product{  // Fields  ArrayList parts = new ArrayList();   // Methods  public void Add( string part )  {    parts.Add( part );  }  public void Show()  {    Console.WriteLine( " Product Parts -------" );    foreach( string part in parts )      Console.WriteLine( part );  }}/**//// <summary>/// Client test/// </summary>public class Client{  public static void Main( string[] args )  {    // Create director and builders    Director director = new Director( );    Builder b1 = new ConcreteBuilder1();    Builder b2 = new ConcreteBuilder2();    // Construct two products    director.Construct( b1 );    Product p1 = b1.GetResult();    p1.Show();    director.Construct( b2 );    Product p2 = b2.GetResult();    p2.Show();    Console.Read();  }}}

原型模式

原型模式確保對象的克隆屬性。克隆的對象可能與原始對象不同。例如,您可以從朋友復制文檔,并根據您的要求更改一些點。

public class PrototypeDemo implements Cloneable{  public Object clone(){    Object object = null;    try {      object = super.clone();    } catch (CloneNotSupportedException exception) {      System.err.println("Not support cloneable");    }    return object;    }    ……}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 淳安县| 铜山县| 许昌市| 屯留县| 临猗县| 昌宁县| 三江| 海城市| 高阳县| 灯塔市| 冀州市| 沙湾县| 徐闻县| 衢州市| 彰化市| 温宿县| 茌平县| 娱乐| 张家界市| 张家港市| 碌曲县| 九台市| 平山县| 荣成市| 汕尾市| 昆明市| 西畴县| 咸丰县| 孝昌县| 青田县| 彩票| 水富县| 尼勒克县| 梅州市| 裕民县| 肇州县| 高青县| 叶城县| 杂多县| 莆田市| 阜南县|