设计模式之设计原则
面向对象设计原则
依赖倒置原则(DIP)
高层模块(稳定)不应该依赖底层模块(变化),二者都应该依赖于抽象(稳定)。
抽象(稳定)不应该依赖于实现细节(变化),实现细节应该依赖于抽象(稳定)。
开放封闭原则(OCP)
对拓展开放,对更改封闭。
类模块应该是可拓展的,但是不可修改。
单一职责原则(SRP)
- 一个类应该仅有一个引起它变化的原因。
- 变化的方向隐含着类的责任。
Liskov 替换原则(LSP)
- 子类必须能够体会他们的基类(IS-A)。
- 继承表达类型抽象。
接口隔离原则(ISP)
不应该强迫客户程序依赖他们不用的方法
接口应该小而完备
优先使用对象组合,而不是类继承
- 类继承通常为 “白箱复用”,对象组合通常为 “黑箱复用”。
- 继承在某种程度上破坏了封装性,子类父类耦合性高。
封装变化点
CockRoackDB 概述
概览
CockroachDB 设计的两个目标:可拓展和一致性。开发者经常会有疑问我们是如何做到的。这篇文章详细解释CockroachDB的内部工作原理。对于使用者来说,不需要了解底层架构,所以此文是为了那些想要了解底层的用户。
目标
CockroachDB 设计目标:
- 使人们的生活更轻松,这意味着对于用户来说高度自动化,对于开发者来说更简单。
- 提供行业领先的一致性,即使在大规模部署当中也是,这意味着使用分布式事务,以及消除最终一致性问题和 过期读的问题。
- 创建一个始终在线的数据库,该数据库所有节点接受读和写,而不产生冲突。
- 允许在任何平台中部署,不需要绑定平台和供应商。
- 支持处理关系数据的工具,比如SQL。
通过这些特性的融合,我们希望 CockroachDB 帮助您构建全球性、可扩展、弹性的部署和应用程序。
在阅读我们的架构文档之前了解一些术语会很有帮助。