安卓开发进阶——从小工到专家——六大原则与设计模式

这是我在学习过程中总结的知识
目的是希望日后回来看或者需要用的时候可以 一目了然 # 的回顾、巩固、查缺补漏
不追求详细相当于书本的精简版或者说是导读(想看详细的直接对应翻书),但会尽力保证读者都能快速理解和快速使用(随理解加深会总结的更加精简),但必要时会附上一些较详细解释的链接
脚注是空白的:表示还没弄懂的知识,了解后会添加

10.1 面向对象六大原则

10.1.1 单一职责原则

· 单一职责原则 Single Responsibility Principle 简称SRP
· 一个类只做一件事,类中的函数所做的工作是高度相关的
· 最大的问题是对职责的定义,什么是类的职责,怎么划分类的职责。界定好的话就是高内聚,低耦合

优点
1.类的复杂性降低,职责定义清晰
2.可读性提高
3.可维护性高
4.变更引起的风险降低

10.1.2 里氏替换原则

这个原则依赖于继承和多态
就是任何父类、父接口出现的地方子类都可以出现,实现了可扩展性
网上的框架就是定义了一系列相关的逻辑骨架与抽象,使得用户可以将自己的实现注入框架中
举例
A类要实现fly接口的一个方法,但是这个要求比较特殊
可以在这个方法中返回一个实现了fly接口(父接口)的符合A类需求的实现类C(子实现类)来完成A类的特殊要求
A类实现了fly接口的飞行方法,但是A类却是一个可以正常飞行又可以像火箭一样飞的对象
可以在这个方法中返回一个实现了fly接口飞行方法(父接口)的实现类C重写了飞行方法为像火箭那样飞(子实现类)来完成A类的特殊要求
优点
1.减少创建类的工作量
2.提高代码重用性
3.提高代码可扩展性
4.提高项目开放性

缺点
1.继承了之后就必须有用父类的所有属性和方法
2.降低代码灵活性
3.增强耦合性

10.1.3 依赖倒置原则

1.高层模块不应该依赖低层模块,两者都应该依赖其抽象
2.抽象不应该依赖细节
3.细节(实现类、实现接口或继承抽象类而产生的类)应该依赖抽象(接口或抽象类)

细节的特点就是可以直接被实例化,也就是加上一个new就产生一个对象

一句话来说:依赖倒置原则就是模块间的依赖通过抽象发生,实现类直接不发生直接的依赖关系

举例
A类依赖于fly接口实现了飞行方法,但是却不依赖于C类(火箭飞)。因为A有时要正常飞,有时又要火箭飞。这样就很明显了

优点
1.低耦合
2.扩展性好
3.降低并行开发的风险

10.1.4 开闭原则

对扩展开发、对修改关闭
和上面3个原则一样,面向接口编程

10.1.5 接口隔离原则

一个类对另一个类的依赖应该建立在最小的接口上
当一个接口太大时,要细分成多个小接口

优点
1.降低耦合性
2.提升代码可读性
3.隐藏实现细节

10.1.6 迪米特原则

也称最少知识原则:一个对象应该对其他对象有最少的了解
通俗来讲:一个类应该对自己需要耦合或调用的类知道最少(有点类似接口隔离原则)
调用者只需要知道它需要的方法即可
优点
1.降低复杂度
2.低耦合
3.增加稳定性

总结六大原则

  • 抽象
  • 单一职责
  • 最小化

设计模式与反模式

总的来说,设计模式总结了特定问题下的正确解决方案
反模式则告诉你在特定的问题上的错误解决方案以及它们的原因、解决方案

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值