zoukankan      html  css  js  c++  java
  • 详列JDK中的设计模式(二)结构型

    1.适配器模式(Adapter):将原来不兼容的类组合,现有类通过适配器转换为目标需要的类

      成为目标对象并拥有原有的功能--实现目标接口,并拥有原有类或继承原有类-->转换

      (1)FileInputStream-->InputStreamReader

        FileOutputStream-->OutputStreamWriter

      

     2.装饰器模式(Decorator)

      增强原有类的功能,替代它的位置,拥有它的功能并增强它的功能

      (1)InputStream-->BufferedInputStream

        Reader-->BufferedReader  ......java.io包

      

     3.代理模式(Proxy)

      增强被代理类的功能并对被代理类进行控制

      (1)jdk中动态代理的实现:

        动态代理-->在运行时期动态地增强对象,而非类似装饰器模式的静态在编译器就形成增强

        动态代理的实现:定义拦截器实现对被代理类的指定方法的拦截InvocationHandler

               Proxy.newInstance()传入拦截器及被代理类信息获取代理类实例 

      

     4.桥接模式(Bridge):将抽象部分与实现部分分离,使他们独立变化,通过组合实现交互

      (1)java.util.logging中的Handler和Formatter

     5.组合模式(Compositer):一致性地对待组合对象和独立对象,处理树结构

      (1)org.w3c.dom

        构建document对象的建造者模式,处理叶节点和非叶节点的组合模式

     6.外观模式(Facade):封装子系统,对外提供一致性的接口

      (1)java.util.logging包中

        有Hander,Formattor之间的桥接模式

        又有Logger的外观模式

     7. 享元模式(FlyWeight)

      共享对象,节省内存

      (1)Integer.valueOf(int i)   Integer[-128,127]的缓存

       Character.valueOf(char c)  字符的缓存

      (2)String常量池

    参考:https://blog.csdn.net/qq_38311489/article/details/89439835

  • 相关阅读:
    javascript:showModelDialog注意点
    VS.NET 查找未使用过的方法
    JAVASCRIPT:style 中visibility和display之间的区别
    基于MapServer的WebGIS开发http://www.gisforum.net/show.aspx?id=1491&cid=27
    POJ 1845 Sumdiv
    xmu 1254.异或求和
    hdu 4282 A very hard mathematic problem
    POJ Longge's problem 2480
    hdu 1199 Color the Ball
    HDU 1492 The number of divisors(约数) about Humble Numbers
  • 原文地址:https://www.cnblogs.com/ying-dong/p/12152285.html
Copyright © 2011-2022 走看看