首页 > 代码库 > 外观模式
外观模式
模式定义: 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高级接口,该接口使得这一子系统更加容易使用。
说白了,就是把不同类中的功能封装到一个类里,由客户端调用,客户端只需关心这一个封装类即可。该模式的本意,是既可以使用封装类调用默认组装规则,也可以使用具体类去自由组装。但这样其实并不符合迪米特法则,所以我改成了下面这样,只允许调用封装类,不过下面只适用于所有客户端都只使用同一种组装规则的情形。
优点:符合迪米特法则,另外如果需要修改组装顺序或增减组装元素,也不需要修改客户端代码。
#include <iostream> class WearClothes{ void wear() { std::cout<<"穿戴衣帽"<<std::endl; } friend class Facade;}; class WearSocks{ void wear() { std::cout<<"穿袜子"<<std::endl; } friend class Facade;}; class WearShoes{ void wear() { std::cout<<"穿鞋子"<<std::endl; } friend class Facade;}; struct Facade{ void facade() { WearClothes *p1 = new WearClothes(); WearSocks *p2 = new WearSocks(); WearShoes *p3 = new WearShoes(); p1->wear(); p2->wear(); p3->wear(); delete p1,p2,p3; } };} int main(){ Facade p; p.facade();}
外观模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。