Abstract Factory Design Pattern
. De ulike typer objekter som det abstrakte fabrikken kan produsere er relatert-de er fra en vanlig familie. 5. En abstrakt fabrikk isolerer konkrete klasser. 6. Det gjør utveksling av produktfamilier lett. 7. Det fremmer konsistens blant produktene. 8. Den støtter å legge til nye typer produkter og deres familiesExample: felles grensesnitt IComputerFactory {ICPU createCPU (); IMemory createMemory ();} public interface ICPU {string GetCPUString ();} public interface IMemory {string GetMemoryString ();} //Betong CPUApublic klasse CPUA: ICPU {public string GetCPUString () {return "CPUA"; }} //Betong MemoryApublic klasse MemoryA: IMemory {public string GetMemoryString () {return "MemoryA"; }} public class ComputerFactoryA: IComputerFactory {public ICPU createCPU () {return new CPUA (); } Public IMemory createMemory () {return new MemoryA (); }} public class Klient {//dette er en mal metoden; ikke avhengig av den Betong Factory //og Betong klasser public static streng BuildComputer (IComputerFactory fabrikken) {ICPU cpu = factory.
createCPU (); IMemory minne = factory.createMemory (); Stringbuilder sb = new Stringbuilder (); sb.Append (string.Format ("CPU: {0}", cpu.GetCPUString ())); sb.Append (Environment.NewLine); sb.Append (string.Format ("Memory: {0}", memory.GetMemoryString ())); returnere sb.ToString ();}} Calling Clientprivate annullere button2_Click (objekt avsenderen, EventArgs e) {Abstract_Factory.IComputerFactory fabrikk = new Abstract_Factory.ComputerFactoryA();MessageBox.Show(Abstract_Factory.Client.BuildComputer(factory));}