java策略模式
如果都使用if-else的话,就会使用代码变的臃肿,而且难以复用。那我们就可以根据不同的情况,将不同的方式封装成不同的策略,将策略与它的使用对象分离开来。
案例:
- 定义注解,标注范围
/** * @author Gjing * 价格范围注解 **/ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface PriceRegion { int min() default 0; int max() default Integer.MAX_VALUE; }
- 具体策略
/** * @author Gjing * 抽象策略 **/ public interface Price { BigDecimal getPri
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Node.js官方文档:到底什么是阻塞(Blocking)与非阻塞(Non-Blocking)?
译者按: Node.js文档阅读系列之一。 原文: Overview of Blocking vs Non-Blocking 译者: Fundebug 为了保证可读性,本文采用意译而非直译。 这篇博客将介绍Node.js的阻塞(Blocking)与非阻塞(Non-Blocking)。我会提到Event Loop与libuv,但是不了解它们也不会影响阅读。读者只需要有一定的JavaScript基础,理解Node.js的回调函数(callback pattern)就可以了。 博客中提到了很多次I/O,它主要指的是使用libuv与系统的磁盘与网络进行交互。 阻塞(Blocking) 阻塞指的是一部分Node.js代码需要等到一些非Node.js代码执行完成之后才能继续执行。这是因为当阻塞发生时,Event Loop无法继续执行。 对于Node.js来说,由于CPU密集的操作导致代码性能很差时,不能称为阻塞。当需要等待非Node.js代码执行时,才能称为阻塞。Node.js中依赖于libuv的同步方法(以Sync结尾)导致阻塞,是最常见的情况。当然,一些不依赖于libuv的原生Node.js方...
- 下一篇
java观察者模式
案例: 定义被观察者 /** * @author Gjing * 抽象被观察者 **/ abstract class AbstractSubject { /** * 观察者对象的集合 */ private List<Listener> listenerList = new ArrayList<>(); /** * 添加观察者 * * @param listener 观察者 */ void add(Listener listener) { listenerList.add(listener); } /** * 通知所有观察者 */ void notify
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2整合Redis,开启缓存,提高访问速度
- MySQL8.0.19开启GTID主从同步CentOS8
- Hadoop3单机部署,实现最简伪集群
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16