其他分享
首页 > 其他分享> > 开发思想

开发思想

作者:互联网

思想

策略思想

解决的问题:一类对象,不同对象有不同的处理

实现

顶级接口

抽象策略

具体策略

 

观察者思想

解决的问题:当一个对象状态发生改变时,所有依赖他的对象将得到通知并自动更新

常见场景:

实现:

顶级事件接口

具体事件

顶级订阅者接口

具体订阅者

事件发布中心

 

上下文思想

解决的问题:当一个参数在需要四处传递,可设置上下文,从上下文中取

实现:

上下文顶级接口,定义规范

具体上下文

池化思想

线程池

合理的线程池:根据不同场景,情况去构建合适的线程池,保证效率和资源消耗

场景:流程发布,构建流程轨迹

实现

CAS锁控制控制线程池唯一,只有一个线程能够进行调度(提交任务)

private AtomicBoolean started = new AtomicBoolean(false);

private AtomicBoolean scheduler = new AtomicBoolean(false);

自定义阻塞队列,存放任务

private BlockingQueue<ProcessDefinition> queue = new LinkedBlockingQueue<>(512);

单个线程循环处理,allowCoreThreadTimeOut回收线程节约资源

this.executor.allowCoreThreadTimeOut(true);


try {
           ProcessDefinition definition;
           while ((definition = queue.poll()) != null) {
               handler(definition);
          }
      } catch (Exception e) {
           e.printStackTrace();
      } finally {
           scheduler.compareAndSet(true, false);
           if (!queue.isEmpty()) {
               scheduler();
          }
      }

设计思想

并不是绝对的,灵活变通

单一职责模式

一个类只做一个事情,可通过依赖建立联系

优点:职责分明,结构清晰,便于修改

前:

img

后:

img

开闭原则

实现不改变这个类的情况下进行扩展

实现:策略模式

前:

img

 

后:

img

里氏替换原则

通过继承来进行扩展

依赖倒置原则

面向接口编程

 

合成复用原则

多用组合代替继承

迪米特法则

中间类

接口隔离原则

接口隔离原则和单一职责都是为了提高类的内聚性、降低它们之间的耦合性,体现了封装的思想,但两者是不同的:

接口拆分

标签:思想,原则,接口,接口隔离,开发,线程,上下文,AtomicBoolean
来源: https://www.cnblogs.com/lcjtt/p/16610462.html