门面模式(Facade)(外观模式)—向养牛场送货
来源:互联网 发布:优尼凯珠宝软件使用 编辑:程序博客网 时间:2024/05/18 00:13
门面模式 :为子系统构建与外部系统交互的统一界面。
门面模式的优点,我认为有两点:
1:解耦各个子系统,减少子系统与外部系统调用时的频繁调用,
2:屏蔽子系统内的方法,这样就可以尽量少的向外部系统暴露方法。
例子:
向养牛场送货
类图;
Facade角色:Guard门卫,负责与内部系统的交互,即与仓库保管员与兽医站人员的交互
子系统角色:Verterinary兽医 WareHouse仓库保管员,负责各个子系统的操作
门卫,为货物进行分类,分别调用子系统 , Guard类
package facade;/** * 此时门卫相当于一个Facade角色 * @author wang * */public class Guard {public void purChase(){//如果是兽药,通知兽医站Veterinary nary = new Veterinary();nary.purChase();//如果是饲料,通知仓库保管员WareHouse ware = new WareHouse();ware.purChase();}}
兽医类,接收药物分类放置,同时要通知仓库保管员更新库存记录,Verterinary类
package facade;/** * 兽医进货,要将药物放在兽医站 * @author wang * */public class Veterinary {WareHouse ware = new WareHouse();public void purChase(){System.out.println("放在兽医站");ware.updateRecord();}}
package facade;/** * 仓库保管员进货,要将货物放在物资仓库 * @author wang * */public class WareHouse {public void updateRecord(){System.out.println("更新记录表");}public void purChase(){System.out.println("放进物资仓库");}}
送货员类,此时相当于外部系统,其只要通知门卫即可,不需要知道工厂的内部结构,Delivery类
package facade;/** * 送货员相当于外部系统,此时只需要通知门卫即可,具体货物送到兽医站还是物资仓库由门卫通知内部人员即可 * @author wang * */public class Delivery {public static void main(String args[]){Guard guard = new Guard();guard.purChase();}}
0 0
- 门面模式(Facade)(外观模式)—向养牛场送货
- Facade 外观(门面)模式
- 外观/门面模式(Facade)
- 门面模式(外观模式):Facade
- Facade(外观模式,门面模式)
- Java Facade (外观模式、门面模式)
- 8.外观模式/门面模式(Facade)
- 门面模式(Facade 外观模式,对象结构型模式)
- 外观模式(Facade Pattern)或门面模式
- 门面模式(外观Facade模式)
- 外观模式(门面模式)--Facade
- 门面(Facade)模式
- 门面(Facade)模式
- 门面(Facade)模式
- 门面(Facade)模式
- 门面(Facade)模式
- 门面(facade)模式
- Facade(门面模式)
- 百宝云语法变量与常量新手教程
- 工作环境搭建(4) - CentOS7安装工作用的软件包
- 如何在AngularJS中消除闪烁
- 1049 数据片段和
- libexpat.so.0: cannot open shared object file: No such file or directory
- 门面模式(Facade)(外观模式)—向养牛场送货
- C++之编码实现ping的功能
- JS文件读写
- linux基础(五)----linux命令系统学习----系统管理命令
- Kettle学习------最简单的第一个Demo
- 使用GO实现游戏批量搭服的小程序,
- javaSE中的异常
- OVERLAPPED
- LINUX配置防火墙