面向对象 object-oriented 思维导图

面向对象 object-oriented

思维导图

object-oriented
Xmind文件下载地址:https://download.csdn.net/download/qq_33554334/12439716

特性 character

封装 encapsulation:隐藏数据,暴露调用接口。减少耦合,提高可用性。
继承 inherit:实现IS-A关系,遵循LSP(里氏替换原则)。
多态 polymorphic:对象的同一行为具有多种不同的形式或形态。
	编译时多态:方法重载 overload(名相同、参数列表不同,与返回值无关)。
	运行时多态:对象引用所指向的具体类型在运行时才确定【方法重写 override(不同类,名相同、参数列表相同、返回值相同)、向上转型】。

UML类图 UML Class-diagram

泛化 generalization:描述继承关系,类图样式为实直线加空心三角形箭头。java中使用extends关键字。
实现 realization:描述实现关系,类图样式为虚直线加空心三角形箭头。java中使用implements关键字。
聚合 aggregation:表示整体由部分组成,非强依赖、整体不存在时部分还存在。类图样式为实直线加空心菱形。
组合 composition:表示整体有部分形成,强依赖、整体不存在时部分也不存在。类图样式为实直线加实心菱形。
关联 association:表示对象间有关联,静态关系、与运行过程无关。1对1、1对多、多对1、多对多。类图样式为实直线上加关联关系(1 1、1 n、n 1、n n)。
依赖 dependency:表示对象之间有关联,非静态关系、在运行过程中起作用。局部变量、参数传递、消息传递。类图样式为实心箭头加虚直线(<------)。

设计原则 Design-principles

单一责任 SRP:the-single-responsibility-principe,修改类的原因只有一个、让一个类只负责一件事。
开放封闭 OCP:the-open-closed-principle,类应该对扩展开放,对修改关闭。添加新功能时不需要修改代码。典型案例-装饰着模式。
里氏替换  LSP:the-liskov-substitution-principle,子类对象必须能够替换掉所有父类对象,并且子类要比父类更特殊。【与父类相比,子类方法前置条件(形参)要更宽松、后置条件(返回值)要更严格】。
接口分离 ISP:the-interface-segregation-principle,不应强迫客户依赖与它们不用的接口。使用多个专门的接口替换单一的总接口。
依赖倒置 DIP:the-denpendency-inversion-principle,高模块不应依赖地模块、两者都应该依赖与抽象。抽象不应依赖细节,细节应该依赖与抽象。【依赖抽象:任何变量都不应持有指向具体类的指针或引用、任何类都不应该从具体类派生、任何方法都不应重写它的基类已经实现的方法】

其他原则 other-principle

	迪米特 LOD(最少知识原则 LKP):the -law-of-demeter(least-konwledge-principle),一个对象应当尽可能的少了解其他对象,不和陌生人说话。
	合成复用 CRP:the-composite-reuse-principle,复用时尽量使用对象组合而不是继承。
	共同封闭 CCP:the-common-closure-principle,一起修改的类,应组合在一起(同一个包内)
	稳定抽象 SAP:the-stable-adstractions-principle,包的抽象程度跟它的稳定性成正比,最稳定的包应该是最抽象的包。
	稳定依赖 SDP:the-stable-dependencies-principle,包之间的依赖都应该时稳定方向依赖,包要依赖比自己更稳定的包。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值