OOAD设计原则(慨念)

OOAD设计原则
可读性(高)
可复用性(高)
可扩展性(高)
可维护性(高)
高内聚,低耦合
内聚度
表示一个应用程序的单个单元所负责的任务数量和多样性
耦合度
表示类之间关系的紧密程度
原则
单一职责
类的职责单一,不能太多的职责放在一个类中
一个类应该只做一件事情
类的职责:由该类对象在系统中的角色所决定的
开闭原则
软件实体对扩展是开放的,但对修改是关闭的,即在不修改一个软件实体的基础上扩展其功能
对扩展开放,对更改封闭。
更适用于继承
里氏替换原则
在软件系统中,一个可以接受基类对象的的地方必然可以接受一个子类对象
在一个软件系统中,子类应该能够替换任何父类能够出现的地方,不会让调用父类的客户程序从行为上有任何改变
类的继承原则:里氏替换原则常用来检查两个类是否为继承关系
动作真确性保证:里氏替换原则对子类进行了约束。
所有子类的行为功能必须和使用者对其父类的期望保持一致,如果子类达不到这一点,那么必然违反里氏替换原则
依赖倒转原则
要针对抽象层编程,而不要针对具体类编程
高层模块不应该依赖于低层模块,二者都应该依赖于抽象
抽象不应该依赖于细节,细节依赖于抽象
接口隔离原则
使用多个专门的接口来取代一个统一的接口
客户不应该依赖它们用不到的方法,只给每个客户它所需要的接口
接口设计原则
接口的设计应该遵循最小接口原则,不要把用户不使用的方法塞进同一个接口里,如果一个接口的方法没使用到,则说明该接口过胖,应该将其分割成几个功能专一的接口,使用多个专门的接口比使用单一的总接口要好
接口的继承原则
如果一个接口A继承另一个接口B,则接口A相当于继承了接口B的方法,那么继承了接口B后的接口A也遵循了上述原则:不应该包含用户不是用的方法,反之,则说明了接口A被B污染了,因该重新设计他们的关系
实现
通过多层继承分离接口

通过委托分离接口
组合聚度合用原则
在系统中应该尽量多使用组合和聚合关联关系,尽量少使用甚至不使用继承关系
在一个新的对象中使用一些已 有的对象,使之成为新对象的一部分,新的对象通过向这些对象委托功能达到复用这些对象的目的
好处:组合聚合复用
新对象存取成分对象的唯一方法是通过成分对象的接口
这种复用是黑箱复用,因为成分对象的内部细节是新对象所看不见的
这种复用所需的依赖较少
每一个新的类可以将焦点集中在一个任务上
这种复用可以在运行时间内动态进行,作为整体的新对象可以动态的引用于部分对象类型相同的对象。
组合聚合是动态行为,即运行时行为,可以通过使用组合聚合的方式上获得更高的灵活性
继承复用
拥有者可以看见子对象的类容(白箱复用)
继承复用破坏封装,
迪米特原则
一个软件实体对其他实体的引用越来越少,或者说如果两个类不必彼此直接通信,那么这两个类就不应该发生直接的相互作用,而不是通过引入一个第三者发生间接交互
最少知识原则
一个软件实体应当尽可能少的与其他实体发生相互作用
当一个模块修改时,就会尽量少的影响其他的模块,扩展会相对容易
他是对软件实体之间通信的限制,并对软件实体之间通信的宽度和深度做出了要求
表述方式
只与你直接的朋友们通信
不要更“陌生人”说话
每一个软件单位对其他的单位都只有最少的知识,而且局限于那些于本单位密切相关的软件单位
“朋友”的条件
当前对象本身(this)
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
面向对象分析与设计(OOAD)的设计图书管理系统的主要目标是实现对图书的管理和借阅的功能。 首先,我们需要定义核心的,如图书、用户、借阅等。图书应该包括图书的属性,如书名、作者、出版社、出版日期等。用户应该包括用户的属性,如用户名、密码、借阅记录等。借阅应该包括借阅的属性,如借阅日期、归还日期等。 其次,我们需要定义之间的关系和交互。用户可以通过登录系统来进行图书的搜索、借阅、归还等操作。系统应该提供相关接口供用户操作。用户借阅图书时,系统需要检查图书的状态(是否已借出),如果图书可借,则将借阅记录添加到用户的借阅记录中,并将图书的状态更新为已借出。借阅期满后,用户需要归还图书,系统将相关记录从用户的借阅记录中删除,并将图书的状态更新为可借状态。 此外,系统还应该提供管理员的功能,管理员可以对图书进行管理,包括添加、删除、修改图书的信息。管理员可以查看所有用户的借阅记录,并对超期未归还的图书进行催还等操作。 最后,系统应该具备一定的安全性,包括用户登录验证、管理员权限验证等,以保护用户和图书信息的安全。 综上所述,通过OOAD的设计,可以构建一个功能完善、易于使用和管理的图书管理系统。系统可以提供用户与图书之间的交互,同时具备管理员对图书和用户的管理功能,满足图书管理的需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值