Fork me on GitHub

UML(7)

面向对象系统分析与设计(7)

1. 面向对象的六大设计原则

  1. 单一职责,single responsibility principle,SRP
    • 一个类,只做一件事。
  2. 开闭原则,open close principle,OCP
    • 对扩展开放,对修改封闭,保护既有系统。
    • 是 OO 设计的真正核心。
  3. 里氏替换原则,liskov substitution principle,LSP
    • 子类可以拓展父类的功能,但不能修改父类原有的功能。
  4. 接口隔离原则,interface segregation principle,ISP
    • 接口间的依赖性要小;比如一个类要实现某功能时,如果接入接口 A 和接口 B,然而只有 A 的功能是必须的,但因为 A 和 B 的依赖性,接入 B 是完全没有必要的,修改的办法就是降低 A、B 间的依赖。
  5. 迪米特原则,law of demeter,LOD
    • 陌生的类不要作为局部变量的形式出现在类的内部,耦合性会变高。
  6. DIP原则,dependency inversion principle。
    • 模块设计、细节和策略应该依赖于抽象,抽象的稳定性决定了系统的稳定性。
    • 变量不应该持有指向具体类的指针或引用。
    • 类不应该从具体类派生。
    • 任何方法都不应该覆写它的任何基类中已经实现了的方法。

2. 用户界面设计

2.1 用户界面设计原则

  1. 布局:主要有 top、bottom、middle,要考虑 size、shape、输入框等
  2. content awareness:大概指主题、信息之类的。
  3. 审美。
  4. 用户体验。
  5. 连贯性:满足用户期待、降低学习曲线等
  6. 不费力:从进入主页面到功能页面,建议不超过三层。

2.2 用户界面设计过程

  1. 应用场景开发
    • 考虑哪些步骤、UI、模板、information 等。
  2. 接口结构的设计
    • 列出树状 menu 之类的工作。
  3. 接口标准的设计
    • 列出 interface 的细节,包括 objects、actions、icons 等。
  4. 接口模板设计
    • 包括 HTML 模板等。
  5. 接口评估
    • 交互评估、使用测试等。

2.3 设计使用指南

  1. 首先假设用户没有读过手册、没有经过培训等。
  2. 控制流程要清晰、便于理解。
  3. 避免错误。
  4. 保持语法一致性。
  5. 考虑添加快捷键。
  6. 图形化操作。

2.4 设计 input 和 output

input 目标:尽可能简单地将信息传递到系统中。
output 目标:仅将 needed 的信息导出,考虑 report 的使用场景等。

-------------The End-------------