易截截图软件、单文件、免安装、纯绿色、仅160KB

Java设计模式之Facade模式

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 darwerOne=new DrawerOne();
  DrawerTwo darwerTwo=new DrawerTwo();
  darwerOne.open();
  darwerTwo.open();
  }
  }
由于没有使用Facade模式,可以看到要想得到这个文件要首先打开第一个抽屉,然后再打开第二个抽屉,在我们实际所开发的系统中,有时候客户要实
现某一操作,并不需要知道实现这一操作的详细步骤,而是简单地点击某一个按钮就可以得到自己想要的结果。下面对上面的代码使用Facade模式进行改进,
建立一个FacadeDrawer类:
  class DrawerFacade{
  DrawerOne darwerOne=new DrawerOne();
  DrawerTwo darwerTwo=new DrawerTwo();
  public void open(){
  darwerOne.open();
  darwerTwo.open();
  }
  }
  修改Client类:
  public class DrawerClient{
  public static void main(String []args){
  DrawerFacade drawer=new DrawerFacade();
  drawer.open();
  }
  }
  输出结果如下:
  第一个抽屉被打开了
  得到第二个抽屉的钥匙
  第二个抽屉被打开了


相关文档:

JAVA中用于处理字符串的“三兄弟”

JAVA中用于处理字符串的“三兄弟”
JAVA中用于处理字符串常用的有三个类:java.lang.String、java.lang.StringBuffer、java.lang.StringBuilder,这三者的共同之处都是final类,不允许被继承,这主要是从性能和安全性上考虑的,因为这几个类都是经常被使用着的,且考虑到防止其中的参数被修改影响到其它的应用。 ......

Java程序员需要了解的几个开源协议

今天工作的任务要写一些跟开源协议相关的约定说明,所以在网上搜索了一些资料以供参考,下面列出了几个比较常见的开源协议,如果想要了解其他的协议
和详细了解这些协议,我个人推荐这个网址:http://www.opensource.org/licenses/
  Mozilla Public License
  MPL License,允许免费重发布、免费修改,但要求修改后 ......

JAVA计算机代码

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class j5_13 extends Applet implements ActionListener
{
  Panel p=new Panel();//新建布局
  Label welcome,la1,li1,la2,li2,lresult;//提示标签,符号标签以及计算结果的标签
  TextField ta,tb,t ......

java正则表达式中的数量词

    java中的正则位于java.util.regex包中,这个包中只有一个MatchResult接口和Matcher、Pattern两个类。
   正则中的数量词有Greedy (贪婪)、Reluctant(懒惰)和Possessive(强占)三种
  
 Greedy 数量词
X?
X,一次或一次也没有
X*
X,零次或多次
X+
X,一次或多次
X{n ......

四个有害的Java编码习惯

程序中的编码风格让我们的编程工作变得轻松,特别是程序维护员,他们要经常阅读其他人编写的程序编码,这一点尤其突出。编码规范从根本上解决了程序维护员的难题;规范的编码阅读和理解起来更容易,也可以快速的不费力气的借鉴别人的编码。对将来维护你编码的人来说,你的编码越优化,他们就越喜欢你的编码,理解起来也就越 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号