学习一个系统,关键是要对它的各种逻辑有深入的认知,才能对它有深刻的理解,日常工作中才能解决系统带出来的种种问题。下面对其的一个开发模式做个个人理解的说明。好记性不如兰笔头嘛。
一般的开发模式中,可能是这样的写法。
OrderService orderService = new OrderService();
InventoryService inventoryService = new InventoryService();
PaymentService paymentService = new PaymentService();orderService.CreateOrder();
inventoryService.DeductStock();
paymentService.Charge();
这起码是个人初学编程阶段的写法了吧。一句一句写,请楚明了。肯定不能符合编程高手们的思维了吧。于是门面模式的概念出来了。
首先是拆分出来以下3个类,而且每个类中尽量只有一个方法,这样的设计原则在u9的客开,或是自身的开发中比比皆是。
public class OrderService
{
public void CreateOrder() { }
}public class InventoryService
{
public void DeductStock() { }
}public class PaymentService
{
public void Charge() { }
}
以上的拆分一般也是已经存在的类,方法了吧。在些基础上,再定义一个门面类(Facade)
public class OrderFacade
{
private OrderService _order = new OrderService();
private InventoryService _inventory = new InventoryService();
private PaymentService _payment = new PaymentService();public void Do()
{
_order.CreateOrder();
_inventory.DeductStock();
_payment.Charge();
}
}
调用代码
OrderFacade facade = new OrderFacade();
facade.Do();
从以上这个简单例子看到,这无非是极致的封装。总结一下。
把一堆复杂操作,包成一个简单方法给别人用。