大话设计模式之工厂模式

来源:互联网 发布:js中文姓名正则表达式 编辑:程序博客网 时间:2024/06/14 15:48

工厂模式

  不解释,直接上代码

  

// 雷锋工厂interface IFactory {  LeiFeng CreateLeiFeng();}// 学雷锋的大学生工厂class UndergraduateFactory : IFactory {  public LeiFeng CreateLeiFeng() {    return new Undergraduate();  }}// 社区志愿者工厂class VolunteerFactory : IFactory {  public LeiFeng CreateLeiFeng() {    return new Volunteer();  }}//客户端调用IFactory factory = new UndergraduateFactory();LeiFeng student = factory.CreateLeiFeng();student.BuyRice();student.Sweep();student.Wash();

与简单工厂的区别:

简单工厂写法如下:

class SimpleFactory {  public static LeiFeng CreateLeiFeng(string type) {    LeiFeng result = null;    switch(type) {     case "学雷锋的大学生":       result = new Undergraduate();       break;     case "社区志愿者":       result = new Volunteer();       break;   }   return result;  }}// 客户端调用LeiFeng studentA = SimpleFactory.CreateLeiFeng("学雷锋的大学生");studentA.BuyRice();LeiFeng studentB = SimpleFactory.CreateLeiFeng("学雷锋的大学生");studentB.Sweep();LeiFeng studentC = SimpleFactory.CreateLeiFeng("学雷锋的大学生");studentC.Wash();


原创粉丝点击