笔记

来源:互联网 发布:杨恒均是间谍知乎 编辑:程序博客网 时间:2024/06/11 08:07

1. 重配置,轻编程

AOP, PLUGIN, provider,

依赖注入只是控制反转(作为模式现在已经有10年历史了)的一部分。控制反转的另外两个方面是配置和生命周期。其含义是,类应该从外界获得配置 (更多的注入),生命周期状态变换同样也应该从外部进行控制。它们不应该在构造函数中配置自己、创建新线程或监听Sockets,在静态初始化时做这些事 情就更糟了。

2. 采用以数据为中心的(data-centric)方式、而不是以操作为中心的(operation-centric)方式把业务逻辑暴露出来。

3. 多整合。
IIS宿主 + IIS filter + Firewall

4. 基于列的数据库(插入慢,读取快)
5. XML的标准化(配置文件的标准化等) 

6. 应对变化,提高复用

7. 软件的工程化VS源代码就是设计

8. 封装:隔离变化
继承:重用代码
多态:改变对象的行为

9. 针对接口编程,而不是针对实现编程
优先使用对象组合,而不是类继承(继承是白盒,耦合度高IS-A才用)
封装变化点

10. 使用重构得到模式--模式不宜先入为主(Refactoring to Patterns)

11.
单一职责原则SRP:Single Responsibility Principle
开放封闭原则OCP:Open-Close Principle
Liskov替换原则LSP:Liskov Substitution Principle(IS-A)
依赖倒置原则DIP:Dependency Invertion Principle (高层改变慢)
接口隔离原则ISP:Interface Separate Principle(不应强迫客户程序依赖于它们不用的方法)
关于包的设计原则:
重用发布等价原则REP:Reuse Equivalence Principle
共同重用原则CRP:Common Resue Principle
共同封闭原则CCP:Common Close Principle
无环依赖原则ADP:Acyclic Dependency Principle
稳定依赖原则SDP:Stabilization Dependency Principle
稳定性度量公式:I=Ce/(Ca+Ce) (I:不稳定度,Ce:输入耦合度,Ca:输出耦合度)
I取值范围在【0,1】,I=0表示具有最大稳定度;iI=1标识具有最大不稳定度
稳定抽象原则SAP:Stabilization  Abstract Principle