
设计模式
设计模式个人理解
湛蓝蜗牛
stay hungry,stay foolish
展开
-
状态模式理解
package mode.State; public abstract class State { protected int x ; public abstract State setX(int x); public abstract String status(); public State(int x) { super(); this.x = x; } } package mode.State; class StateOK extends State {原创 2021-09-01 22:01:26 · 253 阅读 · 0 评论 -
策略模式理解
个人感觉跟桥模式的实现特别类似,或者说他就是桥模式的一部分。 就是通过创建不同的接口实现类对象来选择具体调用哪一种接口方法的实现。 直接上代码吧: package mode.Strategy; public class Client { private Sort sort; public Client(Sort sort) { super(); this.sort = sort; } public void name() { sort.sort(); }原创 2021-09-01 21:44:57 · 226 阅读 · 0 评论 -
代理模式详解
关于代理模式,其最大的用途是通过客户类通过代理类简介调用委托类的方法实现,主要优点是能保证信息安全。比如数据库或日志访问等操作,我们就可以将所有申请访问数据的请求都交给代理类来处理。这样一来除了代理类其他任何类对象都没机会直接访问数据,极大保证了信息安全。 另外一点是可以在符合开闭原则的前提下对目标对象进行功能扩展,就是可以通过代理类添加一些附加功能(非主业务),比如清理缓存、打印日志等。这一点跟装饰模式有点类似(当然本质上是不一样的)但是缺陷在于每个代理类只能针对一项服务,如果有多个服务都需要通过中介调用原创 2021-09-01 20:21:32 · 164 阅读 · 0 评论 -
装饰模式详解
对于装饰模式而言,核心就是装饰类Decorator,假设接口为impl,提供一个原始抽象方法operation,其实现类为Con,提供operation的原始实现,最初的调用应该是创建一个Con的对象直接调用Con的方法。现在想在原始实现方法基础上新增功能,那么就可以借助Decorator实现。 public class Decorator implements Component { // 关联原抽象业务 private Component component; public Decorato原创 2021-08-31 22:06:40 · 142 阅读 · 0 评论