GOF23
设计模式
沐风清寒
努力ing
展开
-
JDK和CGLIB动态代理
JDK动态代理 特点 优点:jdk自带,不需导入jar包 缺点:真实对象必须实现接口、利用反射效率不高 实现步骤 ①创建处理器: 需实现InvocationHandler接口,实现invoke方法(参数:代理对象,被代理方法,方法参数) 需持有真实对象,在invoke中通过method.invoke进行调用被代理方法 ②生成代理对象: proxy.newProxyInstance() 参数: 反射...原创 2020-03-30 21:53:06 · 89 阅读 · 0 评论 -
GOF之行为型模式Ⅱ(重点)
解释器模式(Interpreter) 用于描述如何构成一个简单的语言解释器,主要用于使用面向对象语言开发的编译器和解释器设计 实例:EL表达式,正则表达式,SQL语法,数学表达式 ps:尽量不要使用解释器模式,后期维护有很大麻烦。 在项目中,可使用Jruby,Groovy,java的js引擎替代解释器的作用,弥补java的不足。 访问者模式(Visitor) 对于存储在一个集合中的对象,可能具有不...原创 2020-03-09 10:24:17 · 143 阅读 · 0 评论 -
GOF之行为型模式Ⅰ(重点)
责任链模式(chain of responsbility) 职能:将能处理同一类请求的对象连接成一条线,所提交的请求沿链传递 组件: Handler:抽象处理类,声明处理方法 ConcreteHandler:具体处理类,判断权限,进行处理 实例:java异常机制,Servlet中过滤器的链式处理,Struts2中拦截器的调用 UML: 迭代器模式(iterator(游标模式 cursor)) 职...原创 2020-03-08 09:48:44 · 129 阅读 · 0 评论 -
GOF之结构型模式Ⅱ(重点)
装饰器模式 (decorater(包装器模式 Wrapper)) 动态的为对象增加一个新的功能 优点:使用对象的关联关系取代继承关系,降低系统的耦合度,避免类型体系的快速膨胀 缺点:会产生很多小对象,大量小对象占用内存,在一定程度上影响性能 组件: Component:抽象构件,真实对象和装饰对象所相同的接口 ConcreteComponent:具体构件角色 Decorator:装饰角色,持有一个...原创 2020-03-07 10:04:11 · 194 阅读 · 0 评论 -
GOF之结构型模式Ⅰ(重点)
适配器模式(adapter: Adaptee+Adapter(实现接口)) 将一个类的接口适配成用户所期待的,适配允许通常因为接口不兼容而不能在一起工作的类工作在一起 类适配器(继承) 对象适配器(组合) 组合优于继承 例:系统改造和升级;InputStreamReader与outpuStreamWriter(字节与字符转换) UML(对象适配器): 代理模式(proxy :proxy(实...原创 2020-03-06 22:37:06 · 207 阅读 · 0 评论 -
GOF之创建型模式(重点)
单例设计模式 作用:减少系统开销,优化资源共享访问 UML: 分类 1)、饿汉式(不可延时加载) 可能造成资源浪费 枚举型:天然的单例设计模式 2)、懒汉式 (可延时加载) ①double checking (synchronized,volatile(防止指令重排,同步数据)):受JVM底层机制影响,一般不使用 。 ②静态内部类式:类的加载是天然线程安全,加载一个类时,其内部类不会同时被加...原创 2020-03-06 20:23:23 · 193 阅读 · 0 评论