项目实践之Facade模式

来源:互联网 发布:电脑软件删不掉怎么办 编辑:程序博客网 时间:2024/05/16 06:22

        之前在设计系统架构的时候,除了一些比较熟悉的模式,像Singleton模式、Strategy模式等,并没把《设计模式》这本书的所有模式都了解得很仔细,当时的想法就是尽量做到几点要求:模块尽量功能单一,模块间耦合度要低,要易于扩展。今天在复习《设计模式》这本书的时候,蓦然发现原来设计的很多东西,《设计模式》书上都能找到对应的原型。

       《设计模式》一书上讲,Facade模式的意图是: 为子系统中的一组接口提供一个一致的界面, Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。动机是:是将一个系统划分成为若干个子系统有利于降低系统的复杂性。一个常见的设计目标是使 子系统间的通信和相互依赖关系达到最小。达到该目标的途径之一是就是引入一个外观 (Facade)对象,它为子系统中较一般的设施提供了一个单一而简单的界面。

       我们当时的应用也比较简单,主要是为一组应用提供一个数据管理模块,所有需要数据的用户通过该模块获取数据。数据的来源大概分成4类,一是本地内存、二是从网络取(分成两大类,从局域网取数据、从远程服务器取数据)、三是从本地文件 取、四是从数据库取数据(本机数据库、远程数据库) 。如果没有提供这样一个模块,会遇到以下几个问题:一是数据使用者会很麻烦,需要管理数据获取的逻辑。二是不满足模块功能单一的要求。三是复用和扩展性不会太好。简单的类结构图如下(为说明Facade模式,去掉了其余所有的信息):

 

原创粉丝点击