zoukankan      html  css  js  c++  java
  • 工厂模式

     1 namespace UnitTestProject1.BaseDesign
     2 {
     3 
     4     /// <summary>
     5     /// 工厂方法模式要求:尽量使用抽象类或接口来定义就可以达到一个开闭原则
     6     /// </summary>
     7     [TestClass]
     8     public class BaseDesign
     9     {
    10         [TestMethod]
    11         public void TestMethod1()
    12         {
    13             GetAnimalEat(new DogFactoryFactory());
    14 
    15             GetAnimalEat(new PigFactoryFactory());
    16 
    17             //如果再增加一个AnimalEat不会对现有代码有改动
    18         }
    19 
    20         void GetAnimalEat(AnimalFactory fa)
    21         {
    22             Animal am = fa.GetAnimal();
    23             am.Eat();
    24         }
    25     
    26     }
    27     public abstract class Animal
    28     {
    29         public abstract void Eat();
    30     }
    31 
    32     public class Dog : Animal
    33     {
    34         public override void Eat()
    35         {
    36             Console.WriteLine("dog eat");
    37         }
    38     }
    39 
    40     public class Pig : Animal
    41     {
    42         public override void Eat()
    43         {
    44             Console.WriteLine("pig eat");
    45         }
    46     }
    47 
    48     public abstract class AnimalFactory
    49     {
    50         public abstract Animal GetAnimal();
    51     }
    52 
    53     public class DogFactoryFactory : AnimalFactory
    54     {
    55         public override Animal GetAnimal()
    56         {
    57             return new Dog();
    58         }
    59 
    60     }
    61     public class PigFactoryFactory : AnimalFactory
    62     {
    63         public override Animal GetAnimal()
    64         {
    65             return new Pig();
    66         }
    67     }
    68 }
  • 相关阅读:
    OC
    OC
    核心动画
    核心动画
    核心动画
    数据存储1
    plsql语句基础
    Oracle3连接&子查询&联合查询&分析函数
    oracle2约束添加&表复制&拼接
    Oracle表空间创建及表创建
  • 原文地址:https://www.cnblogs.com/hanliping/p/11437858.html
Copyright © 2011-2022 走看看