Chinaunix首页 | 论坛 | 博客
  • 博客访问: 662237
  • 博文数量: 137
  • 博客积分: 7000
  • 博客等级: 少将
  • 技术积分: 1335
  • 用 户 组: 普通用户
  • 注册时间: 2005-11-23 15:18
文章分类

全部博文(137)

文章存档

2010年(2)

2009年(2)

2008年(2)

2007年(30)

2006年(99)

2005年(2)

我的朋友

分类:

2007-07-04 14:35:30

1.开闭原则(open-closed principle)
  模块、方法和类应该对扩展开放,对修改封闭。换言之,软件应该设计成不加修改原有代码就能扩展功能。

2.背景设计原则
  依赖倒置原则(dependency inversion principle, DIP)
  起背后的理念是应该在设计细节之前先创建总体概念。高层模块不应该依赖底层模块。相反,它们都应该依赖于抽象。
  Liskov替换原则
  一个从积累派生的类应该支持基类的所有行为。

3.封装变化原则
  模式并非只能封装变化,它们还有助于找到对象之间的关系。

4.理性怀疑原则
  小心过分依赖模式。概念层次的模式和模型都是真理的抽象。它们是以往经验和教训的结晶。使用它们来帮助我们思考摆在我们面前的问题。
  “适合”某个问题的模式就在问题中,而不是强加在问题之上。
  试图确定并适应所有可能的变化通常并不能获得更好的系统,这样往往会一事无成。这就是所谓的分析瘫痪(paralysis by aralysis)



抽象类与接口
抽象类和接口的表面区别:抽象类允许有公共的状态和行为。

抽象类和接口在设计层次上的区别:
    抽象类可以看成是一种聚集相关实体的方式。其关注点是如何设计这些具体的实体(派生类),从而可以以同样的方式使用它们。
    接口的关注点是要使用这些派生/实现的对象。也就是说,服务对象应该有什么样的接口,才能最好地服务于背景/控制对象?
阅读(1905) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~