适配器模式(adapter: Adaptee+Adapter(实现接口))
将一个类的接口适配成用户所期待的,适配允许通常因为接口不兼容而不能在一起工作的类工作在一起
类适配器(继承) 对象适配器(组合) 组合优于继承
例:系统改造和升级;InputStreamReader与outpuStreamWriter(字节与字符转换)
UML(对象适配器):
代理模式(proxy :proxy(实现接口) + really(实现接口))
1)通过代理,控制对对象的访问,在方法调用前做前置处理,在方法调用后做后置处理
2)AOP(Aspect Oriented 面向切面编程 )的核心机制
3)应用场景 : 安全代理、远程代理、延迟加载
4)分类
静态代理:静态定义代理类
动态代理:动态生成代理类,自动生成
①JDK自带的动态代理
②javaassit字节码操作库实现
③CGLIB
④ASM(底层使用指令,可维护性较差)
UML(静态代理):
桥接模式(bridge)
多继承结构:违反单一职责原则,扩展不方便
取代多继承的方案,将事物分为多个维度处理,提高了系统的可扩展性
example:JDBC驱动程序;AWT的peer架构
UML:
组合模式 (composite)
把部分和整体的关系用树形结构表示,使得客户端可以使用统一的方式处理部分对象和整体对象
Component:抽象构件,叶子结点和容器构件的共同点
Composite:容器构件,可以包含子节点
Leaf:叶子构件,无子节点
接口中所构建的方法是一个天然递归调用
UML: