8月工作杂记

8.17

上午

改不规范的老代码,

下午

遇到一个最近访问列表Bmp刷新有问题,但我用了将近2个小时才必现了问题。

晚上

工厂模式

工厂方法: 实例化延迟到子类
NN项目中有一个简单的工厂方法,主要思想就是把对象的创建封装进了工厂中,对具体客户类实现了对象创建细节的屏蔽。
抽象工厂: 一套产品

单例模式

全局对象在程序一开始的时候就创建了,如果一段时间没有使用,会耗费资源。单例模式在需要用到的时候才创建。——延迟实例化
构造函数私有化——“鸡生蛋”还是“蛋生鸡”

多线程情况下:
加锁是一种解决方法,但是除了第一次以外,以后每次都不需要锁了,性能下降较多
急切创建实例,声明静态变量即初始化——耗费资源
双重检查加锁

单例可以设计成泛型类,项目中方便使用
FTBaseAPI的延迟初始化的单例泛型是什么鬼,没看懂……

8.18

上午:

策略模式:
如果每次新的需求一来,都会使某方面的代码发生变化——封装起来:
比如某个菜单,它的菜单项可能是会经常修改的。

现状: 鸭子基类放太多函数,子类不一定要用到,每加入一个子类就得改。
如果把鸭子基类的函数外放接口让各个子类继承,每个子类中存在的重复代码又太多了!
以上两种做法,都把行为放进了鸭子类中实现
根本点就是: 飞和叫的函数随着具体鸭子的不同而改变。

行为“外包”给行为对象,鸭子和“行为对象”组合在一起,还可以动态改变。

《Head First》中的最后代码,子类中仍然是面对实现编程,个人认为可以加上一个工厂模式去创建不同的Beaviour类,屏蔽对象创建的细节!

猜你喜欢

转载自www.cnblogs.com/HelloGreen/p/9496718.html