大胖的部落格

Just a note

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  112 随笔 :: 0 文章 :: 3 评论 :: 0 Trackbacks
SRP: Single Responsibility Principle    单一职责原则
系统中的每一个对象都应该只有一个单独的职责,而所有对象所关注的就是自身职责的完成。
每一个职责都是一个设计的变因,需求变化的时候,需求变化反映为类职责的变化。如果一个类承担的职责过多,就等于把这些职责耦合在了一起。一个职责的变化就可能削弱或者抑制这个类其它职责的能力。这种设计会导致脆弱的设计。当变化发生的时候,设计会遭到意想不到的破坏。


OCP: Open Close Principle    开闭原则
类应该对修改关闭,对扩展打开。
OCP 关注的是灵活性,改动是通过增加代码进行的,而不是改动现有的代码。OCP背后的机制就是抽象和多态,通过创建抽象来隔离以后发生的同类变化。


LSP: The Liskov substitution principle        里氏替换原则
子类必须能够替换基类。
继承必须确保基类所拥有的性质在派生类中仍然成立。也就是说,当一个派生类类的实例应该能够替换任何其基类的实例时,它们之间才具有is-A关系。


DIP:Dependence Inversion Principle    反向依赖原则
高层模块不应该依赖于底层模块,二者都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。
如果一个类很稳定,那么依赖于它不会造成伤害。然而我们自己的具体类大多是不稳定的,通过把他们隐藏在抽象接口后面可以隔离不稳定性。
要针对接口编程,不针对实现编程,这样实现细节改变之后,用户针对抽象接口的调用不需要改变。


ISP:Interface Segregation Principle    接口分隔原则
尽量提供有针对性符合功能特点的简单接口,而不是包含很多方法的总接口。
一个接口中包含太多行为时候,导致它们的客户程序之间产生不正常的依赖关系,我们要做的就是分离接口,实现解耦。应用了ISP之后,客户程序看到的是多个内聚的接口。
接口分离后,其中一个接口发生改变时,没有调用该接口的用户代码不需要改变。
posted on 2009-06-17 21:14 大胖 阅读(253) 评论(0)  编辑 收藏 引用 所属分类: UML

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理