static void Main(string[] args) { // get nano car AbstractFactory carFactory = FactoryProducer.GetFactory("car"); ICar nanoCar = carFactory.GetCar("nano"); nanoCar.GetSpecifications(); // get white color AbstractFactory colorFactory = FactoryProducer.GetFactory("color"); IColor color = colorFactory.GetColor("white"); color.GetColor(); Console.Read(); }
static void Main(string[] args) { //获取形状工厂 AbstractFactory shapeFactory = FactoryProducer.GetFactory("SHAPE"); //获取形状为 Circle 的对象 IShape shape1 = shapeFactory.GetShape("CIRCLE"); //调用 Circle 的 draw 方法 shape1.Draw(); //获取形状为 Rectangle 的对象 IShape shape2 = shapeFactory.GetShape("RECTANGLE"); //调用 Rectangle 的 draw 方法 shape2.Draw(); //获取形状为 Square 的对象 IShape shape3 = shapeFactory.GetShape("SQUARE"); //调用 Square 的 draw 方法 shape3.Draw(); //获取颜色工厂 AbstractFactory colorFactory = FactoryProducer.GetFactory("COLOR"); //获取颜色为 Red 的对象 IColor color1 = colorFactory.GetColor("RED"); //调用 Red 的 fill 方法 color1.Fill(); //获取颜色为 Green 的对象 IColor color2 = colorFactory.GetColor("GREEN"); //调用 Green 的 fill 方法 color2.Fill(); //获取颜色为 Blue 的对象 IColor color3 = colorFactory.GetColor("BLUE"); //调用 Blue 的 fill 方法 color3.Fill(); Console.ReadKey(); }
/* * Este padrão permite a criação de famílias de objetos * relacionados ou dependentes por meio de uma única * interface e sem que a classe concreta seja especificada * É o mais apropriado quando o número e os tipos gerais de * objetos de produtos permanecem constantes, e há diferenças * em produtos específicos famílias * * Quando usar: * - o sistema deve ser independente de qual produto será criado e representado * - o sistema deve ser configurado com uma familia de produto multiplo * - uma família de objetos de produtos relacionados é projetada para ser * usada em conjunto e você precisa impor essa restrição * - voce quer prover uma library de produtos e voce quer revelar apenas suas interfaces * */ static void Main(string[] args) { AbstractFactory shapef = FactoryProducer.GetFactory("shape"); Shapes.IShape circle = shapef.GetShape("circle"); circle.Draw(); Shapes.IShape rectangle = shapef.GetShape("rectangle"); rectangle.Draw(); AbstractFactory colorf = FactoryProducer.GetFactory("color"); Colors.IColor blue = colorf.GetColor("blue"); blue.Fill(); Console.ReadKey(); }
static void Main(string[] args) { Abstract_Factory.AbstractFactory shapeFactory = FactoryProducer.GetFactory(false); IShape shape1 = shapeFactory.GetShape("square"); shape1.DrawShape(); IShape shape2 = shapeFactory.GetShape("Rectangle"); shape2.DrawShape(); Abstract_Factory.AbstractFactory roundedShapeFactory = FactoryProducer.GetFactory(true); IShape shape3 = roundedShapeFactory.GetShape("square"); shape3.DrawShape(); IShape shape4 = roundedShapeFactory.GetShape("rectangle"); shape4.DrawShape(); }
private static void Main(string[] args) { // 初始化创建汽车的两个工厂 Factory hongQiCarFactory = FactoryProducer.GetFactory("HongQiCarFactory"); Factory aoDiCarFactory = FactoryProducer.GetFactory("AoDiCarFactory"); // 生产一辆红旗汽车 Car hongQi = hongQiCarFactory.CreateCar(); hongQi.Go(); //生产一辆奥迪汽车 Car aoDi = aoDiCarFactory.CreateCar(); aoDi.Go(); Console.Read(); }