PetShop中的门面模式

    门面模式要求一个子系统的外部与其内部的通信必须通过一个统一的门面(Facade)对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。
    Facade Pattern的原理我也不多介绍。这些原理在网上资料也比较齐全,分析也比较深入。下面是典型的Facade Pattern类结构图:
PetShop中的门面模式
外面的客户端对内界的了解只要通过Facade就可以了,通过Facade就可以看到整个Subsystem的内部结构。这就是门面的用途,把复杂的世界用一个Facade来表现。下面我们看看PetShop又是如何来实现Facade的呢?
在PetShop4.0中,有如下的类结构图:
PetShop中的门面模式
大家可以看出Clients可以通过DependencyFacade来调用ProductDependency、ItemDependency和CategoryDependency。而左边的继承关系,是为PetShopCacheDependency提供灵活性和可扩展性。想了解Cache和CacheDependency请查看命明空间System.Web.Caching。
(注:在PetShop中,ProductDependency的类名为Product、ItemDependency的类名为Item、CategoryDependency的类名为Category,这里为了表达其继承TableDependency意思而改动)


你可能感兴趣的:(门面模式)