最近一直在看Terrylee的模式设计,看了很多懂的,很多不懂的,觉得很迷茫,很多模式就是只有一点点差距,但是却不一样,公司老板写了个factory的模式,仔细研究了下,恩,大概对factory模式了解了,就是把底层产品抽象出来,然后根据抽象的产品弄出不同型号的产品出来,产品本身是一样的,也就是品牌不同,当然也可以根据产品品牌不同添加新的熟悉或者方法,然后根据抽象的产品,抽象出一个工厂出来,假设这个抽象工厂就是生产这个产品的,因此有个return产品的的方法,再根据抽象的工厂弄出几个跟产品有关的具体生产的工厂,工厂返回了具体某个品牌的产品,就像美的生产美的工厂牌电风扇,小天鹅工厂生产小天鹅牌电风扇一样,客户购买电风扇时候只需要知道哪家厂家出产的即可!
代码如下:
[code]
抽象的产品
1 ///
2 /// 抽象的Production类
3 ///
4 public abstract class Production
5 {
6 public abstract void Product();
7 }
具体产品A
1 ///
2 /// AProduction类产品
3 ///
4 public class AProduction:Production
5 {
6 public override void Product()
7 {
8 Console.WriteLine("产品A生产成功!");
9 }
10 }
具体产品B
11 ///
12 /// BProduction类
13 ///
14 public class BProduction:Production
15 {
16 public override void Product()
17 {
18 Console.WriteLine("产品B生产成功!");
19 }
20 }
21
虚拟的生产工厂
虚拟的生产工厂必然有个返回虚拟商品的方法Create
1 ///
2 /// 抽象工厂类
3 ///
4 public abstract class ProductionFactory
5 {
6 public abstract Production Create();
7 }
生产A产品的厂家
1 ///
2 /// AProductionFactory类
3 ///
4 public class AProductionFactory:ProductionFactory
5 {
6 public override AProduction Create()
7 {
8 return new AProduction();//重写了虚拟工厂的方法,返回了A类产品
9 }
10 }
生产B产品的厂家
11 ///
12 /// BProductionFactory类
13 ///
14 public class BProductionFacotry:ProductionFActory
15 {
16 public override BProdctionCreate()
17 {
18 return new BProduction();//重写的虚拟工厂的方法,返回了B类产品
19 }
20 }
用户如何购买
1 ///
2 /// App类
3 ///
4 public class App
5 {
6 public static void Main(string[] args)
7 {
8 ProductionFactory aproductionfactory = new AProdctionFactory();//选择了A类工厂(品牌)
9
10 Production aprodcution = aproductionfactory.Create();//返回了A工厂生产的产品
11
12 aproduction.Write();//产品
13 }
14 }
[/code]
个人观点,如有不对尽快改正!
浙公网安备 33010602011771号