工厂方法模式

mac2022-06-30  76

简单工厂模式将产品封装起来,这样我们只需要告诉工厂我需要什么产品,你给我生产什么产品就可以,

但是,我现在想要生产一个轮胎,目前的工厂都不能生产,那么,我要么给钱,让这个工厂可以生产轮胎,但这样费用太高,那我们使用另一个办法,找一个新的工厂.这样,我们就有必要把工厂给抽象出来.

1\抽象工厂类,每个工厂生产自己的产品

public abstract class FactoryAll { public abstract Product CreateProduct(); } public class ScrewFactory : FactoryAll { public override Product CreateProduct() { Product screw = new Screw(); return screw; } } public class NutFactory : FactoryAll { public override Product CreateProduct() { Product nut = new Nut(); return nut; } }

这样,我们想要什么产品,只需要找对应的工厂就可以了,没有轮胎工厂,没关系,我们找一个轮胎工厂,就可以了

public class TireFactory : FactoryAll { public override Product CreateProduct() { Product tire = new Tire(); return tire; } }

现在,我们找到了一个工厂可以生产轮胎,那我们就可以告诉这个工厂,我需要一个轮胎

static void Main(string[] args) { FactoryAll screwFactory = new ScrewFactory(); Product screw= screwFactory.CreateProduct(); screw.PrintProduct(); FactoryAll tireFactroy = new TireFactory(); Product tire = tireFactroy.CreateProduct(); tire.PrintProduct(); Console.ReadKey(); }

现在,我们如果再想要其他部件,只要找对应的工厂就可以了,这样就解决了简单工厂模式中难以扩展的问题.

 

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

最新回复(0)