十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
工厂方法模式:
布尔津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();
结果