第8章工厂方法模式-创新互联

工厂方法模式:

布尔津ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!定义一个用户创建对象的接口,让子类决定实例化哪一个类,工厂方法是一个类的实例化延迟到了其子类。   工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在的,也就是说, 工厂方法吧简单工厂的内部逻辑判断移到了客户端代码来进行。你想要加功能,本来是要改工厂类的,而现在是修改客户端。

  ///   /// 雷锋
///   public class LeiFeng
    {
public void Wash()
        {
            Console.WriteLine("洗衣");
        }

public void Sweep()
        {
            Console.WriteLine("扫地");
        }
    }

///   /// 大学生
///   public class Undergraduate : LeiFeng
    {

    }

///   /// 社区志愿者
///   public class CommunityVolunteer : LeiFeng
    {

    }

///   /// 雷锋工厂
///   interface IFactory
    {
        LeiFeng CreateLeiFeng();
    }


///   /// 大学生雷锋工厂
///   public class UndergraduateFactory : IFactory
    {
public LeiFeng CreateLeiFeng()
        {
return new Undergraduate();
        }
    }

///   /// 社区志愿者雷锋工厂
///   public class CommunityVolunteerFactory : IFactory
    {

public LeiFeng CreateLeiFeng()
        {
return new CommunityVolunteer();
        }
    }

客户端调用

IFactory factory = new UndergraduateFactory();
LeiFeng leifeng= factory.CreateLeiFeng();
leifeng.Sweep();
leifeng.Wash();

factory= new CommunityVolunteerFactory();
leifeng= factory.CreateLeiFeng();
leifeng.Sweep();
leifeng.Wash();

结果


分享标题:第8章工厂方法模式-创新互联
本文链接:http://myzitong.com/article/ccjeed.html