OOP复习笔记之一

反射
啥时候用 再调用时候决定就用反射(性能可能有影响)

封装
多态 调用父类执行子类 (抽象 多态)
继承 is a 一个事务代表他们

封装
i

面向对象的设计原则
1 开闭原则对扩展开放,对修改关闭
理想条件下的目标
eg 有个 项目 一 需要 class 1 F1() F2 ()
第二个 项目 用到 class1 F1() F2() F3()
问咋办
第一个解决方案 打开class1 写入 F3();
这种方式就违背了 开闭原则
第二个 解决方法 class2 继承 class1 写入 F3(); 有的总是需要 对原来的做一定的修改
所以是理想的

2 类的单一职责 (一个类的定义)
适用于基础类 不适用基于复杂的聚合类
一个类有且只有一个改变它的原因

3 面向接口编程而非面向实现 (写一个类时从哪入手)
先做好一个好对外的接口(公有的方法),
实现不是第一步要思考.
先思考做什么,为其他的组件提供什么功能,
而不是去先思考功能的实现
在这里插入图片描述
4使用组合而非继承 (复用的最佳实践)
如果仅仅为了复用优先选择组合复用,而非继承复用。
组合的耦合性对继承低

5 依赖倒置 倒转( 依赖抽象)
客户端代码尽量依赖抽象的组件,因为抽象的是稳定的。实现是多变的。

6里氏替换 (继承后的重写)
父类出现地方可以被子类替换掉。要保护替换前的原有的工作,在替换后依然保持不变
子类在重写父类方法时,尽量选择扩展重写。(用到父类的方法)
所有的子类都不用 全部重写 !写成抽象
子类要用到 父类那就写成虚方法

7 接口隔离 (功能拆分)
尽量定义小而精的接口,不要定义大而全的接口
小接口之间功能隔离,实现类需要多个功能时可以选择多实现.或接口

8 迪米特法则
不要和陌生人说话
类与类交互时,在满足功能要求的基础上,
传递的数据量越少越好.因为这样可能降低耦合度。
追求的目标:代码低耦合 好!便于替换
在这里插入图片描述
比如说 A调用B里面两个数据 但是B类数据很多 我们就可以用一个接口里面有两个方法来调用B的数据 B实现接口
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值