抽象工厂模式

mac2022-06-30  94

现在我需要不同尺寸的螺丝和螺帽了,那么久有必要对实现方法做更改了

假设这个工厂是按照尺寸来划分车间的,我们需要1mm和5毫米的螺丝,这样就可以具体到车间,告诉这个工厂的车间,来给我生产

这样,工厂部分代码就是这样的

public abstract class Factory { public abstract Screw CreateScrew(); public abstract Nut CreateNut(); } public class Factory1MM : Factory { public override Nut CreateNut() { return new Nut1MM(); } public override Screw CreateScrew() { return new Screw1MM(); } } public class Factory5MM : Factory { public override Nut CreateNut() { return new Nut5MM(); } public override Screw CreateScrew() { return new Screw5MM(); } }

产品是这样的

public abstract class Screw { public abstract void PrintScrew(); } public abstract class Nut { public abstract void PrintNut(); } public class Screw1MM : Screw { public override void PrintScrew() { Console.WriteLine("1毫米螺丝"); } } public class Screw5MM : Screw { public override void PrintScrew() { Console.WriteLine("5毫米螺丝"); } } public class Nut1MM : Nut { public override void PrintNut() { Console.WriteLine("1毫米螺帽"); } } public class Nut5MM : Nut { public override void PrintNut() { Console.WriteLine("5毫米螺帽"); } }

这样,就可以在客户端创建想要的产品了

class Program { static void Main(string[] args) { Factory factory1MM = new Factory1MM(); factory1MM.CreateNut().PrintNut(); factory1MM.CreateScrew().PrintScrew(); Console.ReadKey(); } }

 

转载于:https://www.cnblogs.com/qiushuizh/p/10605208.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)