
设计模式
MU_kaka
仰天大笑出门去,我辈岂是蓬蒿人
展开
-
设计模式(1)策略模式
定义一些列算法,然后把每一个算法封装起来,使它们可以相互替换。 实现:定义一个策略接口,每一个算法都去实现这个接口,然后定义一个上下文,持有接口的引用,然后客户端可以通过上下文获取到具体的策略二、springmvc中的策略模式前端控制器DispacherServlet处理请求需要依赖很多组件类,如处理器映射HandlerMapping,处理器适配器HandlerAdapter,视图解...原创 2018-06-26 09:44:47 · 258 阅读 · 0 评论 -
设计模式(2)装饰者模式
装饰者模式:不改变原文件,不使用继承的情况下,动态扩展一个对象的功能分为4个角色:(1)抽象被装饰对象 (2)具体被装饰对象:实际被动态添加功能的对象 (3)抽象装饰者(ConcreteDecorator):实现component接口,来扩展component类的功能 (4)具体装饰者:动态的添加职责的对象实现:定义一个被装饰者的抽象接口,被装饰对象和抽象装饰者实现这个接口。在装饰类将被装...原创 2018-06-26 12:43:09 · 148 阅读 · 0 评论 -
设计模式(5)简单工厂,工厂方法,抽象工厂
一.简单工厂模式1.设计思路建立一个工厂类,对实现统一接口的类进行实例的创建。实质就是由工厂类根据传入的参数,动态的决定应该创建哪个实例类接口2.缺点(1)集中了所有实例的创建逻辑,违背了高内聚责任分配原则(2)如果要添加新的类,就需要修改工厂类,违背开放-关闭原则3.代码实现(1)人类/** * 产品的抽象接口 人类 * @author liao...原创 2018-07-11 00:01:14 · 188 阅读 · 0 评论 -
设计模式(3)观察者模式
一.介绍 1. 观察者模式:又可称为发布-订阅模式,顾名思义,就是定义一个监听者,监听着被观察的事件,一旦观察到被监听者某个状态变化就会触发相应的事件 2.应用场景 观察者模式常被用于实现订阅功能的场景,如微博订阅,当我们订阅了某个人的微博账号,该用户发布消息,就会通知到我们 3.实现方案: (1).针对观察者和被观察者分别定义接口(有利于进行扩展)...原创 2018-06-28 19:05:25 · 117 阅读 · 0 评论 -
设计模式(4)单例模式
一.单例模式程序中某个类只能有一个实例,如spring容器中的bean实例默认都是单例模式存在的二.单例模式的好处(1)避免对象的重复创建,减小时间和内存开销(2)避免操作多个对象导致的逻辑错误,可以全局统一控制三.实现单例模式 五种实现方案:饿汉模式,懒汉模式,双重校验锁,静态内部类,枚举 1.饿汉模式 public class Singleton { //构造函数私有...原创 2018-06-29 00:12:52 · 158 阅读 · 0 评论 -
设计模式(6)代理模式
1.什么是代理模式 编程中有一个思想就是不要随意修改别人的代码,如果需要修改,可以通过代理模式来实现 用户------代理对象--------目标对象(被代理对象)2.静态代理 静态代理在使用时,需要定义接口或者父类,被代理对象与代理对象一起实现相同的接口或继承相同的父类 缺点:代理对象和目标对象需要实现同一个接口,所以一旦增加接口中的方法,代理对象和目标对...原创 2018-08-25 15:27:39 · 199 阅读 · 0 评论