设计风格 - wolai 笔记

1.程序设计语言

所有语言都可完成面向对象实现,但效果不同。
  • 使用非面向对象语言编写面向对象程序,则必须由程序员自己把面向对象概念映射到目标程序中。
  • 选用面向对象语言的优点。

2.选择

2.1将来能够占主导地位

产品有生命力

2.2可重用性

2.3类库和开发环境

  • 考虑类库中提供有价值类
  • 开发环境中提供基本软件工具和类库编辑工具及浏览工具

2.4其他因素

培训服务; 技术支持; 开发工具、开发平台、发行平台;
对机器性能和内存需求;集成已有软件容易程度

3.程序设计风格

3.1提高可重用性

(1)提高方法的内聚

方法只完成单个功能。涉及多个不相关功能,分解。

(2)减小方法的规模。

方法规模过大,分解。

(3)保持方法的一致性

功能相似方法有一致名字、参数特征(包括参数个数、类型和次序)、返回值类型、使用条件及出错条件等。

(4)把策略与实现分开

  • 负责做出决策,提供变元,管理全局资源,称策略方法。
  • 负责完成具体操作,称实现方法。
  • 实现方法相对独立,可在其它系统中重用,将二者分开。

(5)全面覆盖

  • 应针对所有组合写方法。
  • 当前应用需要:获取表中第一元素
  • 提高可重用写:获取表中最后一元素
  • 处理正常值
  • 对空值、极限值、界外值做出响应

(6)尽量不用全局信息

降低方法与外界耦合程度。

(7)利用继承机制

实现共享和提高重用程度的主要途径。

1)调用子过程

把公共代码分离出来,构成一个公用方法。

2)分解因子

从不同类相似方法分解出不同的代码,余下作为公用方法中公共代码。把分解出的因子作为名字相同算法不同的方法,在不同类中定义。

3)使用委托

4)代码封装在类中

把被重用的代码封装在类中。

3.2提高可扩充性

(1)封装实现策略

应把类的实现策略(包括数据结构、算法等)封装起来,对外提供公有接口。

(2)不要用一个方法遍历多条关联链

一个方法应只包含对象模型中有限内容。否则导致方法过分复杂,不易理解和修改扩充。

(3)避免使用多分支语句

  • 增添新类时会修改原有的代码。
  • 合理利用多态性机制。

(4)精心确定公有方法

公有方法是向公众公布的接口。

3.3提高健壮性

(1)预防用户操作错误

任何输入(错误),给出提示信息,再次接收用户输入。

(2)检查参数合法性

(3)不预先确定限制条件

使用动态内存分配机制,创建未预先设定限制条件数据结构。

(4)先测试后优化




Comment