每天一个设计模式
Kevins Danish
玩转原生代码
展开
-
设计模式之观察者模式
模式的动机在很多情况下,对象并不是孤立存在的,如股票的变动,倘若某支股票上涨,则应该让购买该股票的股民得到通知,并为之欣喜,否则就会失望悲伤,甚至演化出种种的事故… 从例子中我们不难可以分离出两类角色,一类我们称之为观察者,如股民,另一类就是被这些观察者观察的对象,如股票等;如果观察目标有某个动作发生。观察者就会相应,就像小时候的捉迷藏,躲着的我们在观察是否有人来抓你,有的话就会一下子原创 2017-12-05 22:17:30 · 1498 阅读 · 0 评论 -
设计模式之观察者模式
模式的动机在很多情况下,对象并不是孤立存在的,如股票的变动,倘若某支股票上涨,则应该让购买该股票的股民得到通知,并为之欣喜,否则就会失望悲伤,甚至演化出种种的事故… 从例子中我们不难可以分离出两类角色,一类我们称之为观察者,如股民,另一类就是被这些观察者观察的对象,如股票等;如果观察目标有某个动作发生。观察者就会相应,就像小时候的捉迷藏,躲着的我们在观察是否有人来抓你,有的话就会一下子四散逃跑,那原创 2017-12-05 22:14:27 · 3683 阅读 · 0 评论 -
每天一个设计模式之Decorator模式解决类间组合爆炸问题
模式动机Decorator模式是一种相对简单的对象结构性模式,动态和对象是个对应的关系,正如静态和类这样的对应关系,编译时能够决定的特质是静态特质,动态则表示在运行时进行操作,传统情况下使用的继承是静态的给类添加职责,动态的给对象添加职责,则是装饰者模式所要完成的事。 给类和给对象添加职责有什么不同呢 前者的灵活性要差,如果需要添加的职责很多,前者需要为每种情况都定义一个固定类,这里的原创 2017-12-07 17:45:39 · 1593 阅读 · 0 评论 -
enum实现的单例?(同时满足懒汉的懒加载和恶汉的线程安全)
enum实现的枚举是effective java中比较推荐的做法上代码public class enumSingleton { private enumSingleton(){} public static enumSingleton getInstance(){ return singleEnum.SINGLETON.getInstance()...原创 2018-08-05 16:11:40 · 1731 阅读 · 7 评论 -
优雅的判空操作_对需要频繁判空的对象entity的代码优化
优雅的判空操作 --> 对需要频繁判空的对象entity的代码优化代码结构entity是本文用到的对象,里面还用到了entityReturn作为field和getEntityReturn的返回值,如下图红框Entity对应的接口:entity是Ientity的实现类,Nullentity也是这个接口实现类相同的,entityReturn也是相似的套路看红色箭头->...原创 2018-11-25 16:48:26 · 1768 阅读 · 1 评论