实质:
工厂模式是将对象的创建嫁祸给工厂类, 降低对象之间的耦合。
使用实例:
1、简单工厂---也叫静态工厂
其精髓在于静态:当需要创建新对象时,只需通过静态方法直接调用创建即可,没有了工厂类,目标对象的创建。这也就形成了对原创建逻辑的重组与优化。
public interface IService { bool Summit(); } public class NormalOrderService : IService { public bool Summit() { //TODO summit the normal order return false; } } public class ApplyOrderService : IService { void CreateOrder(); public bool Summit() { CreateOrder(); //TODO summit the apply order return false; } } public class BookOrderService : IService { bool CheckDate(DateTime time); public bool Summit() { if (CheckDate(DateTime.Now)) { //TODO Summit the bookOrder return true; } else { return false; } } } public class ServiceFactory { public static IService CreateService(string orderType) { switch (orderType) { case "Normal": return new NormalOrderService(); case "Apply": return new ApplyOrderService(); case "Book": return new BookOrderService(); default: return null; } } }
调用时直接调用ServiceFactory.CreateService().Summit();从而在实现业务时无需显示的创建工厂或者实例对象。
其弊端则是当新增一种服务时,工厂类则需要进行改动,相当于影响到已有的代码,不符合开闭原则。
时间: 2024-11-10 19:33:04