软件构建中的设计

1)关键的设计概念
软件的首要技术使命:管理复杂度。
    在软件的架构层次上,可以通过把整个系统分解为多个系统来降低问题的复杂度。子系统间的相互依赖越少,你就越容易在同一时间里专注问题的一个小部分。精心设计的对象关系使关注相互分离,从而使你能在每个时刻只专注于一件事情。
    保存子程序的短小精悍也能帮助你减少思考的负担。在最高抽象层次上工作,也能减少人的脑力劳动。
理想的设计设计特征:
    最小的复杂度,如果你设计的方案不能让你专注于程序的一部分的话,这一设计就没有什么作用了。
    易于维护
    松散耦合,各个部分关联最小。
    可移植性
    层次性
设计的层次:
    第一层,软件系统
    第二层,分解为子系统或包。比如数据库,用户界面等。定义各个系统之间的通信规则,即一个系统怎么使用另一个系统。最简单交互一个子系统去调用另一个子系统中的子程序;稍微复杂一点就是包含另一个子系统中的类,最复杂就是继承另一个子系统的类。
    第三层,分解为类
2)设计构造块:启发式方法
    找出现实世界中的对象。使用对象进行设计的步骤:
    1 辨识对象及其属性(方法和数据)。
    2 确定可以对各个对象进行的操作。
    3 确定对象对其他对象进行的操作。对象之间最常见的关系就是包含和继承。
    4 确定对象的哪些部分为private和public。
    形成一致的抽象。当你把一个东西称为"房屋",而不是木头,玻璃的组合体时,就是用抽象了。抽象的好处就在于使你能忽略无关的细节。
    当继承能简化时就继承。当一项操作与具体子类无关时,这一操作就可以针对通用类型来进行。
    隐藏信息。信息隐藏是减少重复工作的强大技术。在设计的所有层面上,都可以通过询问改隐藏些什么来促成好的设计决策。请养成问“我该隐藏些什么的习惯”。
    找出容易改变的区域。目标应该是把不稳定的区域隔离出来,从而把变化所带来的影响限制在一个子程序,类或者包得内部。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值