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

首頁 > 學院 > 開發(fā)設計 > 正文

創(chuàng)造設計模式

2019-11-09 13:57:13
字體:
來源:轉載
供稿:網友
此設計模式提供了根據項目要求創(chuàng)建類的對象的方法。這意味著您可以控制應用程序中對象的創(chuàng)建和生命周期。正如我們在上一篇文章中已經討論過的不同的創(chuàng)造性設計模式,讓我們回憶一下下面的創(chuàng)造性模式,然后我們將在后面討論不同類型的創(chuàng)造性模式。單身設計模式SingletonSingleton設計模式確保一個類在應用程序中只有一個實例,并且它只提供訪問該對象的運行實例的一個訪問點(全局訪問點)。工廠模式工廠模式確保您可以使用工廠方法(靜態(tài)方法)而不是使用new運算符來創(chuàng)建類的對象,以便可以控制該特定對象使用的所有對象和內存。Sample sample=new Sample();抽象工廠抽象工廠模式是一組工廠類,我們可以根據我們的要求使用/實現(xiàn)新的工廠類。然后我們可以派生一個新的類形式新創(chuàng)建的工廠類,而不是直接從抽象工廠類派生。
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模式確保,當我們創(chuàng)建一個復雜的對象時,它使用一步一步的創(chuàng)建過程,最后一步返回類的對象。
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;    }    ……}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 泉州市| 祥云县| 河南省| 娄烦县| 留坝县| 长葛市| 留坝县| 土默特右旗| 新昌县| 华坪县| 玉门市| 抚远县| 三门县| 高陵县| 易门县| 石阡县| 浮梁县| 扶余县| 泽库县| 桐庐县| 曲水县| 绩溪县| 措勤县| 伊金霍洛旗| 黔江区| 萨迦县| 古田县| 山东省| 博罗县| 大新县| 六枝特区| 历史| 应城市| 栾川县| 方正县| 札达县| 察哈| 靖西县| 中西区| 泸定县| 涞源县|