系统设计-面向对象设计
设计软件类
实体类:主要是映射需求中的每个实体,实体类保存需要存储在永久存储体中的信息。实体类通常都是永久性的。实体类是对用户来说是有意义的类,通常采用业务领域属于命名,实体类一定有属性但是不一定有操作。
控制类:主要是用于控制用例工作的类,一般是由动宾短语构成。控制类用于对一个或几个用例所特有的控制行为进行建模,控制对象通常控制其他对象。控制类将用例的特有行为进行封装。控制类没有属性但是一定有方法。
边界类:边界类位于系统与外界的交接处,包括所有窗体、报表、打印机和扫描仪等硬件接口以及其他系统的接口。边界类用于系统接口与系统外部进行交互,外界对象将系统与其外部环境的变更分隔开。边界类就有函数也有方法。
面向对象设计的原则
1、开闭原则
开闭原则是指软件实体应对扩张开放,而对修改关闭,即尽量在不修改原有代码的情况下进行扩展。开闭原则可以扩展已有系统,并为之提供新的行为,以满足对软件的新需求,使得变化中的系统具有一定的适应性和灵活性。开闭原则一般通过在原有模块中添加抽象层来实现。
2、里氏替换原则
一个软件实体如果使用的是一个基类对象,那么一定是用于其子类对象,而且观察不出基类和子类对象的区别,即把基类都替换成它的子类,程序的行为没有变化。在使用此原则的时候,劲量将一些需要扩展的类或者存在变化的类设计为抽象类或者接口,并将其作为基类,在程序中尽量使用基类对象进行编程。
3、依赖倒置原则
依赖倒置原则就是抽象不应该依赖于细节,细节应当依赖于抽象。要针对接口编程,而不是针对实现编程。
4、组合/聚合复用原则
组合/聚合复用原则是在一个新的对象中通过组合关系或聚合关系来使用一些已有的对象,使之成为新对象的一部分,新对象通过委派调用已有对象的方法达到复用其已有功能的目的。
5、接口隔离原则
是指使用多个专门的接口,而不使用单一的总结口。
6、最少知识原则
此原则主要是指一个软件实体应当尽可能少的与其他实体发生相互作用。它的用途就是在于控制信息的载体。在实现的过程中应注意以下几点:
· 在类划分上,应当尽量创建松耦合的类,类之间耦合度越低就越有利于复用
· 在类的结构设计上,每个类都应当尽量降低其属性和方法的访问权
· 在类的设计上,只要有可能,一个类型应当设计成不变的类
· 在对齐他类的引用上,一个对象对其他对象的引用应当降低