1.外观模式
public class ChargeBillFacadeService { private ChaegeBillServiceFactory chaegeBillServiceFactory; public ChargeBillFacadeService() { this.chaegeBillServiceFactory = new ChaegeBillServiceFactory(); } public CM_ChargeBilsEntity GetChargeBill(string id) { ChargeQueryService chargeQueryService = chaegeBillServiceFactory.GetService<ChargeQueryService>("4"); return chargeQueryService.GetChargeBill(id); } public List<CM_ChargeBilsDetailEntity> GetChargeBillData(string id) { ChargeQueryService chargeQueryService = chaegeBillServiceFactory.GetService<ChargeQueryService>("4"); return chargeQueryService.GetChageBillData(id); } public int UpdatePushStatus(string id, Dictionary<string, string> dic) { ChargeBillUpdateService chargeBillUpdateService = chaegeBillServiceFactory.GetService<ChargeBillUpdateService>("3"); return chargeBillUpdateService.UpdateChargeBill(id, dic); } public int UpdateChargeBill(string id, Dictionary<string, string> dic) { ChargeBillUpdateService chargeBillUpdateService = chaegeBillServiceFactory.GetService<ChargeBillUpdateService>("3"); return chargeBillUpdateService.UpdateChargeBill(id, dic); } public void UpdateChargeBill(string[] ids) { ChargeBillDeleteService chargeBillDeleteService = chaegeBillServiceFactory.GetService<ChargeBillDeleteService>("2"); chargeBillDeleteService.DeleteChargeBill(ids); } public void SaveChargeBill(CM_ChargeBilsEntity model, CM_ChargeBilsDetailEntity modelData) { IChargeBillSaveService chargeBillSaveService = chaegeBillServiceFactory.GetService<IChargeBillSaveService>("1"); chargeBillSaveService.SaveChargeBill(model); chargeBillSaveService.SaveChargeBillDetail(modelData); } } public class StartChargeService { ChargeBillFacadeService chargeBillFacadeService; public StartChargeService() { chargeBillFacadeService = new ChargeBillFacadeService(); } public void StartCharge() { chargeBillFacadeService.SaveChargeBill(new CM_ChargeBilsEntity(), new CM_ChargeBilsDetailEntity()); } } public class PowerUpdateService { ChargeBillFacadeService chargeBillFacadeService; public PowerUpdateService() { chargeBillFacadeService = new ChargeBillFacadeService(); } public void PowerUpdate() { chargeBillFacadeService.UpdatePushStatus("1", new Dictionary<string, string>()); chargeBillFacadeService.UpdateChargeBill("1", new Dictionary<string, string>()); } } public class StopChargeService { ChargeBillFacadeService chargeBillFacadeService; public StopChargeService() { chargeBillFacadeService = new ChargeBillFacadeService(); } public void StopCharge() { chargeBillFacadeService.UpdateChargeBill("1", new Dictionary<string, string>()); chargeBillFacadeService.SaveChargeBill(new CM_ChargeBilsEntity(), new CM_ChargeBilsDetailEntity()); } } public class ChaegeBillServiceFactory { public IChargeBillDeleteService GetDelectService() { return new ChargeBillDeleteService(); } public IChargeBillUpdateService GetUpdateService() { return new ChargeBillUpdateService(); } public IChargeQueryService GetQueryService() { return new ChargeQueryService(); } public IChargeBillSaveService GetSaveService() { return new ChargeBillSaveService(); } public T GetService<T>(string type) { if (type == "1") { return (T)GetSaveService(); } else if (type == "2") { return (T)GetDelectService(); } else if (type == "3") { return (T)GetUpdateService(); } else { return (T)GetQueryService(); } return default(T); } } public class ChargeBillDeleteService : IChargeBillDeleteService { public void DeleteChargeBill(string[] ids) { } } public class ChargeBillUpdateService : IChargeBillUpdateService { public int UpdateChargeBill(string id, Dictionary<string, string> dic) { return 1; } public int UpdatePushStatus(string id, int state) { return 1; } } public class ChargeQueryService : IChargeQueryService { public CM_ChargeBilsEntity GetChargeBill(string id) { return new CM_ChargeBilsEntity(); } public List<CM_ChargeBilsDetailEntity> GetChageBillData(string id) { return new List<CM_ChargeBilsDetailEntity>(); } } public class ChargeBillSaveService : IChargeBillSaveService { public void SaveChargeBill(CM_ChargeBilsEntity model) { } public void SaveChargeBillDetail(CM_ChargeBilsDetailEntity model) { } } public interface IChargeBillSaveService { void SaveChargeBill(CM_ChargeBilsEntity model); void SaveChargeBillDetail(CM_ChargeBilsDetailEntity model); } public interface IChargeQueryService { CM_ChargeBilsEntity GetChargeBill(string id); List<CM_ChargeBilsDetailEntity> GetChageBillData(string id); } public interface IChargeBillUpdateService { int UpdateChargeBill(string id, Dictionary<string, string> dic); int UpdatePushStatus(string id, int state); } public interface IChargeBillDeleteService { void DeleteChargeBill(string[] ids); } public class CM_ChargeBilsEntity { } public class CM_ChargeBilsDetailEntity { }
2.代理模式
// 客户端调用 class Client { static void Main(string[] args) { ITaskSerderService taskSerderService = new TaskSerderService(); ServiceProxy serviceProxy = new ServiceProxy(taskSerderService); serviceProxy.Send(new Task()); } } public interface ITaskSerderService { void Send(ITask task); } public class TaskSerderService : ITaskSerderService { public void Send(ITask task) { //do ....... } } /// <summary> ///代理类 /// </summary> public class ServiceProxy : ITaskSerderService { private ITaskSerderService taskSerderService; public ServiceProxy(ITaskSerderService taskSerderService) { this.taskSerderService = taskSerderService; } public void Send(ITask task) { taskSerderService.Send(task); } }