电子商务网站建设实训,上海优化公司排行榜,wordpress vip会员系统,网页设计首页子页目录
1.模式定义
2.应用场景
2.1 电源总开关例子
2.2 股民炒股场景
编辑 3. 实例如下
4. 门面模式的优缺点
传送门#xff1a;
项目中用到的责任链模式
给对象讲工厂模式#xff0c;必须易懂易会
策略模式#xff0c;工作中你用上了吗#xff1f; 1.模式定…目录
1.模式定义
2.应用场景
2.1 电源总开关例子
2.2 股民炒股场景
编辑 3. 实例如下
4. 门面模式的优缺点
传送门
项目中用到的责任链模式
给对象讲工厂模式必须易懂易会
策略模式工作中你用上了吗 1.模式定义
《图说设计模式》 外观模式(Facade Pattern)外观模式又称为门面模式外部与一个子系统的通信必须通过一个统一的外观对象进行为子系统中的一组接口提供一个一致的界面外观模式定义了一个高层接口这个接口使得这一子系统更加容易使用。它是一种对象结构型模式。 《设计模式之禅》 要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口使得子系统更易于使用。 2.应用场景 看到两个 很好的例子如下
2.1 电源总开关例子
一个电源总开关可以控制所有电器的打开或关闭状态。 无论是空调、冰箱、电视、电脑、风扇等等只要是电器都受这个电闸控制。只要这个电闸将关闭所有的电器都会受到牵连(一同关闭)。电源总开关(电闸)即为该系统的外观模式设计。
2.2 股民炒股场景
股民炒股需要了解股票、国债、房产情况需要参与这些项目的具体买和卖耦合性很高。一种解决办法就是交给专业的机构操作买基金。 3. 实例如下 比如我们家里现在有空调、冰箱、电脑这么几个电器 // 冰箱
public class Fridge {// 关闭冰箱public void turnOff() {}// 开冰箱灯..减低冰箱温度..调高冰箱温度...
}// 电视
public class Television {// 关闭电视public void turnOffTV() {System.out.println(关闭电视);}// 切换电视节目..减低电视声音..调高电视声音...public void doSomething() {System.out.println(切换电视节目..减低电视声音..调高电视声音...);}
}// 电脑
public class Computer {// 关闭电脑public void turnOffComputer() {System.out.println(关闭电脑);}// 使用电脑干别的事~public void doSomething() {System.out.println(使用电脑干别的事~);}} 如果没有电闸的的情况下我想将上面的电器关闭掉我需要这样干
// 我要关闭电视、电脑、空调public static void main(String[] args) {new Computer().turnOffComputer();new Fridge().turnOffFridge();new Television().turnOffTV();// 当然了一个正常的家庭不单单只有这么点电器的。// 如果某一天我想关闭家里所有的电器就需要重复new 个对象调用其turn offer方法} 一个一个关是不是很麻烦所以我们就有了电闸 // 电闸
public class ElectricBrake {private Computer computer new Computer();private Fridge fridge new Fridge();private Television television new Television();// 关闭所有电器public void turnOffAll() {computer.turnOffComputer();fridge.turnOffFridge();television.turnOffTV();}
} 当我们想关闭所有电器的时候我们可以使用电闸来关闭。 // 我要关闭所有电器public static void main(String[] args) {ElectricBrake brake new ElectricBrake();brake.turnOffAll();} 有经验的同学可能就会想这不就再封装了一层吗这就是门面模式啦嗯没错这就是门面模式
4. 门面模式的优缺点
优点 对客户屏蔽子系统组件减少了客户处理的对象数目并使得子系统使用起来更加容易。通过引入外观模式客户代码将变得很简单与之关联的对象也很少。 实现了子系统与客户之间的松耦合关系这使得子系统的组件变化不会影响到调用它的客户类只需要调整外观类即可。
缺点
不能很好地限制客户使用子系统类如果对客户访问子系统类做太多的限制则减少了可变性和灵活性。在不引入抽象外观类的情况下增加新的子系统可能需要修改外观类或客户端的源代码违背了“开闭原则”
参考https://www.cnblogs.com/Java3y/p/10198715.html
传送门 项目中用到的责任链模式
给对象讲工厂模式必须易懂易会
策略模式工作中你用上了吗