设计模式
一只大马猴
既然选择了做这行,就要耐得住寂寞
展开
-
设计模式之:策略模式
策略模式,一般用来对某个功能根据不同的策略做不同的响应,实现过程很也简单。将行为定义为策略接口,然后根据实际需要,我们去实现不同的具体策略。然后通过在抽象类中持有策略行为的接口,子类在继承抽象类时,默认提供一种策略。如果需要修改策略,只需要调用抽象类的设置策略方法即可。举个栗子:现在有一个教学行为策略的接口,TeachStrategy。它有两个具体的实现:教数学 M...原创 2019-12-20 17:34:47 · 144 阅读 · 0 评论 -
设计模式之:观察者模式
观察者模式通常用作一对多的通知,即多个观察者监听一个消息事件。通常,我们可以在消息事件的主体中维护一个观察者列表。在事件发生时,遍历自身维护的列表,将消息发布出去。public interface Subject { //注册新的观察者 public boolean registerObserver(StudentObserver so); //移除现有的某个...原创 2019-12-20 14:28:55 · 103 阅读 · 1 评论 -
设计模式之:单例模式
单例模式:单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。单例模式有三种:懒汉式单例,饿汉式单例,登记式单例。 1.懒汉式单例public class SlackerSingleton { private static SlackerSingleton instance; private Slac...原创 2018-10-12 13:18:15 · 96 阅读 · 0 评论 -
设计模式之:模版模式
在我们平时的编码工作中,经常会有一些流程步骤基本相同,只是中间有部分细节不同的业务流程,比如我们自己要实现一个基于redis缓存的模版方法,在redis中存在指定值时,则返回redis中缓存的数据;如果redis中不存在,则查询db,并把查询所得缓存起来,并返回查询所得。这个例子就是用模版模式再好不过了,直接上代码:1.定义模版类@Componentpublic abstract cl...原创 2018-10-22 14:00:53 · 139 阅读 · 0 评论 -
设计模式之:静态代理
静态代理模式,完全就是由我们自己实现的代理方法,一般是用在方法调用前后需要做一些其他操作的情况下;直接上代码:1.定义代理接口public interface MoveAble { public void move();}其实就是定义一个普通的接口而已。2.实现代理功能public class CarProxy implements MoveAble { p...原创 2018-10-22 14:26:15 · 158 阅读 · 0 评论 -
设计模式之:动态代理之JDK动态代理
JDK动态代理的两个核心分别是InvocationHandler和Proxy。下面写一个demo:1.定义一个统一接口public interface MoveAble { public void move();}2.定义接口的实现public class Car implements MoveAble { @Override public void move...原创 2018-10-21 22:29:36 · 188 阅读 · 0 评论 -
设计模式之:动态代理之CGLIB动态代理
cglib代理需要实现MethodInterceptor接口,继续上demo:1.定义目标代理类:public class Train { public void move() { System.out.println("火车行驶中..."); }}2.实现代理类public class CglibProxy implements MethodIntercept...原创 2018-10-21 22:35:41 · 221 阅读 · 0 评论