设计模式
LL小蜗牛
这个作者很懒,什么都没留下…
展开
-
设计模式之状态模式
状态模式允许对象在内部状态改变时改变他的行为,使用组合通过简单引用不同的状态对象来应对状态变化。 下面简单的举个例子,比如一个登陆的流程 1.用户一些参数校验(比如用户密码,用户有效状态,用户是否逻辑删除),没有问题则走2 2.在redis上存放用户信息,并返回用户相关信息 3.返回错误信息 可是有一天我想在密码校验那里加多一段逻辑,即连续输错5次密码后,锁定十分钟,十分钟之后才可以重新...原创 2019-11-10 01:32:49 · 159 阅读 · 0 评论 -
设计模式之过滤链模式
过滤链可以对对象进行一系列的步骤处理/过滤,把处理的步骤解耦一个个小的部分, 主要有三个角色, 1.抽象的过滤类,负责定义过滤器的实现接口,具体的实现还要具体过滤器角色去参与。 2.具体的过滤类,负责具体筛选规则的逻辑实现,最后再返回被处理的对象 3.被处理的对象, 具体过滤器角色中可以对指定感兴趣的目标进行处理,也可以统一处理 抽象的过滤方法 @FunctionalInterf...原创 2019-11-07 17:32:49 · 620 阅读 · 0 评论 -
设计模式之代理模式
定义:为其他对象提供一种代理以控制对这个对象的访问,代理对象起到中介作用,可以屏蔽功能或者增加额外的服务 代理模式分为两种: 静态代理: public interface Run { void run(); } public class DogStaticProxy implements Run{ private Dog dog; public Do...原创 2019-10-28 09:37:21 · 118 阅读 · 0 评论 -
设计模式之装饰器模式
首先看个例子 public abstract class Dog{ abstract void show(); } 一个简单的狗类,里面有一个展示的方法 public abstract class Dog { protected String desc; abstract void show(); abstract void dress(); } 想象很多人...原创 2019-10-22 00:20:47 · 139 阅读 · 0 评论 -
设计模式之观察者模式
观察者模式:定义了对象之间一对多以来,当一个对象状态改变时,所有依赖者都会收到通知并作出相应的动作 主要角色:主题,观察者 优点:两个对象之间松耦合,但仍然可以交互,只是不清楚彼此的细节,当需要新的观察者,只需要让该对象实现观察者接口,主题代码不需要为兼容新的观察者进行修改,只会发送通知给所有实现观察者接口的对象,该设计模式把对象间的依赖关系降到最低 而主题通知观察者自身发生改变时,改变的具...原创 2019-10-21 19:58:38 · 113 阅读 · 0 评论 -
设计模式之单例模式
对象也是资源的一种,而单例模式可以很好的避免对象这种资源浪费的问题,比如减少gc频率,避免大对象的频繁创建等等 单例模式的核心就是只返回一个对象,并且只提供全局的一个访问点即访问方法。有如下几种实现方法 饿汉式 没有线程安全问题,适用于类成员少,占用内存不多的类,但无法做到延迟加载。 //不可继承 public final class Singleton { //静态:类变量 ...原创 2019-10-18 14:46:40 · 100 阅读 · 0 评论 -
设计模式之设计原则
代码有高低质量之分,而设计模式则是提高代码质量如提高其可维护性、扩展性、复用性等等,学习设计模式也可以提高个人对系统设计的理解等等,反正好处多多,正好最近也在学习,便记录一下。 要理解设计模式,我觉得除了要懂得这些设计模式的使用场景外,还要知道他们是围绕什么样的思想或者遵守什么样规则,那不得不提设计原则了。 1.开闭原则 对扩展开放,对修改关闭,即对于某个模块功能应该尽量使用继承或者接口来实...原创 2019-10-18 11:35:48 · 117 阅读 · 0 评论