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; } ……}
新闻热点
疑难解答