一:80页:理想设计特征
1.最小复杂度
见解:
1.尽量减小复杂度,比如查询的时候可以用快排
2.用存储结构的时候,频繁插入删除用list,频繁查找用vector
3.不涉及到排序的时候尽量用unordered类型
4.for循环嵌套,小循环嵌套大循环
二:93页:信息隐藏的一个例子
有个程序,其中每个对象都是通过名为id的成员变量存储唯一的ID。
简单的方式就是设置一个全局变量g_id,其他对象构造的时候,简单使用id =++g_id;
正确的做法是:
设计一个接口
NewId() { return(++g_id);};
id=NewId();
三:93页:非标准语言特性
见解:
将外部库封装在函数里面去调用,而不要直接调用。
后面如果要替换起来也比较容易。
四:100页:耦合标准
有一个公用函数,需要两个参数,而这两个参数是某个类的数据。
这个函数的正确设计应该是用这两个参数作为函数的参数。而不是用类作为参数。
五:102页:语义上的耦合
见解:
如果有两个类,我们设计的时候,不能因为A知道B需要什么,就提供具体的操作,比如A有初始化init函数,然后A中有Run函数,Run函数无论如何都会调用init函数。然后B直接调用Run函数。A知道B实际上只用到7个初始化数据中的3个。所以A只初始化3个数据。这就是语义的耦合。非常危险。
正确做法:
B应该调用A的init,A中的初始化可以全部数据初始化,或者写一个函数专门初始化需要的3个数据。