8月工作杂记
Posted hellogreen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8月工作杂记相关的知识,希望对你有一定的参考价值。
8.17
上午
改不规范的老代码,
下午
遇到一个最近访问列表Bmp刷新有问题,但我用了将近2个小时才必现了问题。
晚上
工厂模式
工厂方法: 实例化延迟到子类
NN项目中有一个简单的工厂方法,主要思想就是把对象的创建封装进了工厂中,对具体客户类实现了对象创建细节的屏蔽。
抽象工厂: 一套产品
单例模式
全局对象在程序一开始的时候就创建了,如果一段时间没有使用,会耗费资源。单例模式在需要用到的时候才创建。——延迟实例化
构造函数私有化——“鸡生蛋”还是“蛋生鸡”
多线程情况下:
加锁是一种解决方法,但是除了第一次以外,以后每次都不需要锁了,性能下降较多
急切创建实例,声明静态变量即初始化——耗费资源
双重检查加锁
单例可以设计成泛型类,项目中方便使用
FTBaseAPI的延迟初始化的单例泛型是什么鬼,没看懂……
8.18
上午:
策略模式:
如果每次新的需求一来,都会使某方面的代码发生变化——封装起来:
比如某个菜单,它的菜单项可能是会经常修改的。
现状: 鸭子基类放太多函数,子类不一定要用到,每加入一个子类就得改。
如果把鸭子基类的函数外放接口让各个子类继承,每个子类中存在的重复代码又太多了!
以上两种做法,都把行为放进了鸭子类中实现
根本点就是: 飞和叫的函数随着具体鸭子的不同而改变。
行为“外包”给行为对象,鸭子和“行为对象”组合在一起,还可以动态改变。
《Head First》中的最后代码,子类中仍然是面对实现编程,个人认为可以加上一个工厂模式去创建不同的Beaviour类,屏蔽对象创建的细节!
以上是关于8月工作杂记的主要内容,如果未能解决你的问题,请参考以下文章