java设计模式之结构型模式

java设计模式之结构型模式
1,适配器模式



    概念: 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

    适用性:


    应用场景:
    1,java图形编程 例如窗体可以添加窗体监听器控制窗体关闭,一般采用匿名类
        addWindowListener(new WindowAdapter(){
           /**
            * 窗口关闭事件
               */
           public void windowClosing(WindowEvent e) {
               System.exit(0);
           }

        });
    2,新老系统集成,新系统需要调用旧系统某一模块的webservice,在新系统中最好做一个适配

2,桥接模式

3,组合Composite模式

    概念:将对象组合成树形结构以表示"部分-整体"的层次结构。"Composite使得用户对单个对象和组合对象的使用具有一致性。"

    适用性:
     1.你想表示对象的部分-整体层次结构。

     2.你希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。
     应用场景:
     1,树形文件结构,例如windows资源管理器 根目录、文件夹、文件,这三者都可以抽象成文件接口,文件夹与文件存在是否可以继续存放文件的区别
     2,以论坛为例,一个版(forum)中有很多帖子(message),这些帖子有原始贴,有对原始贴的回应贴,是个典型的树形结构。


4,装饰(Decorator)模式



    概念:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。

    适用性:
    1.在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。

    2.处理那些可以撤消的职责。

    3. 当不能采用生成子类的方法进行扩充时。

    应用场景:


5,外观(facade)模式

    概念:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

    应用场景:
    1,mvc架构中,action控制层调用service业务层接口


6,享元模式


   
    概念:运用共享技术有效地支持大量细粒度的对象。

    应用场景:
    1,java数据库连接池、线程池等


7,代理模式

猜你喜欢

转载自awenhaowenchao.iteye.com/blog/1731227