淘宝网站做淘宝客,做爰全程的网站,百度风云榜小说排行榜,在手机上做网站是什么软件Java设计模式之Facade模式 GOF《设计模式》一书对Facade模式是这样描述的:为子系统中的一组接口提供一个统一接口。Facade模式定义了一个更高层的接口#xff0c;使子系统更加容易使用。大致意思是说#xff1a;使用一种比原有方式更简单的办法与系统交互。例如#xff0c;…Java设计模式之Facade模式 GOF《设计模式》一书对Facade模式是这样描述的:为子系统中的一组接口提供一个统一接口。Facade模式定义了一个更高层的接口使子系统更加容易使用。大致意思是说使用一种比原有方式更简单的办法与系统交互。例如我们把一个很重要的文件放在了第二抽屉里而第二个抽屉的钥匙放在了第一个抽屉里我们要想取出这个文件第一步肯定要拿到第一个抽屉的钥匙然后打开它再拿出第二个抽屉的钥匙最后打开第二个抽屉取出文件。我就上面说的那个情形写一下实现代码首先我们要实现二个子系统,呵呵把抽屉比喻成系统有点夸张了(DrawerOne、DrawerTwo)class DrawerOne {public void open(){System.out.println(第一个抽屉被打开了);getKey();}public void getKey(){System.out.println(得到第二个抽屉的钥匙);}}class DrawerTwo{public void open(){System.out.println(第二个抽屉被打开了);getFile();}public void getFile(){System.out.println(得到这个重要文件);}}public class Client{public static void main(String []args){DrawerOne darwerOnenew DrawerOne();DrawerTwo darwerTwonew DrawerTwo();darwerOne.open();darwerTwo.open();}}由于没有使用Facade模式可以看到要想得到这个文件要首先打开第一个抽屉然后再打开第二个抽屉在我们实际所开发的系统中有时候客户要实现某一操作并不需要知道实现这一操作的详细步骤而是简单地点击某一个按钮就可以得到自己想要的结果。下面对上面的代码使用Facade模式进行改进建立一个FacadeDrawer类class DrawerFacade{DrawerOne darwerOnenew DrawerOne();DrawerTwo darwerTwonew DrawerTwo();public void open(){darwerOne.open();darwerTwo.open();}}修改Client类public class DrawerClient{public static void main(String []args){DrawerFacade drawernew DrawerFacade();drawer.open();}}输出结果如下第一个抽屉被打开了得到第二个抽屉的钥匙第二个抽屉被打开了