facade模式学习笔记

  facade模式意图是为一组接口提供一个高层接口,比如通过这一组接口实现某种功能统一成一个接口。考虑一个编译器,涉及词法分析,代码浏览,编译等子系统,用户也许并不关心实现的细节,而只想编译生成目标文件连接成可执行文件。为此,我们可以提供一个高层次接口,同时屏蔽词法分析,编译等子系统的具体实现,用户通过这个单一简单的接口实现预想的功能即可。

  这种模式使得客户和子系统实现松耦合,对子系统的修改对客户代码不影响,减少编译依赖性,同时也并不限制子系统类的使用。

示例代码如下:

class scanner {
public:
void scan(){ printf("scanning..\n"); };
};

class parser {
public:
void parse() { printf("parsing..\n"); };
};

class builder {
public:
void build() { printf("building..\n"); };
};

class compiler {
public:
void compile()
{
scanner aScanner;
parser aPaser;
builder aBuilder;

aScanner.scan();
aPaser.parse();
aBuilder.build();
}
};


int _tmain(int argc, _TCHAR* argv[])
{
compiler aCompiler;
aCompiler.compile();

getchar();
return 0;
}

posted on 2012-05-02 16:13 Marv 阅读(175) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2012年5月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

导航

统计

常用链接

留言簿

随笔档案

文章分类

搜索

最新评论

阅读排行榜

评论排行榜