Home

面向对象的五大特征

单一责任原则 (Single-Resposibility Priciple) 其核心思想为:一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。职责过多,可能引起它变化的原因就越多,这将导致职责依赖,相互之间就产生影响,从而大大损伤其内聚性和耦合度。通常意义下的单一职责,就是指只有一种单一功能,不要为类实现过多的功能点,以保证实体只有一个引起它变化的原因。 专注,是一个人优良的品质;同样的,单一也是一个类的优良设计。交杂不清的职责将使得代码看起来特别别扭牵一发而动全身,有失美感和必然导致丑陋的系统错误风险。 开放封闭原则 (Open-Closed Priciple) 其...

Read more

数据库的三大范式

我不明白为什么要疯狂问这个, 当你问我数据库三大范式的时候, 我可能早就把它们给忘了, 但是你让一个知道三大范式的人, 我们一起来比着设计一个数据库. 还真不一定谁设计的好. 现在越多的反范式设计, why? 范式很重要么? 很重要, 也很不重要. 除了降低冗余, 结构更加符合标准, 还有其他很多要追求的东西, 比如 性能(索引), 需求. 如果你知道数据库的底层结构, 几乎都是B+树, 为了一些功能上的联合排序搜索, 我们比较好的方法就是使用聚簇索引, 这个时候你难道就为了降低冗余来分表么? 好了, 吐槽了这么多, 东西还是要记的. 有一些东西, 不管你日后怎么去否认和厌烦他, 但你毕竟是踩着它上来的, 所以, 稳住. 第一范式 确保每一列保持原子性. ...

Read more

面向过程与面向对象

面向过程 把问题进行一步步分解, 分解出来的操作, 抽象成为函数, 由具体的函数来进行完成, 程序的实现是依次按步骤执行相应函数的过程. 在面向过程当中, 数据, 是与函数相隔离的, 数据由具体的数据结构(比如c语言中的结构体)来进行储存, 数据在函数之间通过参数传递, 或者由函数直接去操作数据(指针), 经过一系列函数的处理, 最终得到我们想要的结果. 面向对象 把问题进行一步步分解, 分解出来的操作(或者说是模块), 抽象成为类, 而对象是类的具体实体, 由一个个对象按逻辑相互发送消息, 通过对象与对象之间的互相利用来实现功能. 类!=对象, 一定要区分开 面向对象将实体的属性和行为绑定到了一起, 实现了对现实世界的真正模拟. 面向对象的优势: 设计程序的...

Read more