面对对象设计六大原则和apk升级更新方面参考

走向灵活软件之路----学习面对对象的六大原则

优化代码第一步:单一职责原则

单一职责原则:Single Responsibility Principle (SRP)。
SRP的定义:对于一个类而言,应该仅有一个引起它变化的原因。通俗来讲,就是一组相关性很高的函数、数据的封装。不要把不相关这个类的东西,也塞进这个类里面。关于单一职责原则的划分,最大的问题就是对职责的定义,什么是类的职责,如何划分这些类,这些都是需要经验积累和项目需要来判断的。所以的东西都放在一个类里面引起高耦合,这样很不好。

让程序更稳定、更灵活:开闭原则

开闭原则: Open Close Principle,缩写是OCP,它是Java世界里最基础的设计原则,它指导我们如何建立一个稳定的、灵活的系统。
开闭原则的定义是:软件中的对象(类、模块、函数等)应该对于扩展是开放的,但是,对于修改是封闭的。
在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会将错误引入原本已经经过测试的旧代码中,破坏原有系统。因此,当软件需要变化时,我们应该尽量通过扩展的方式来实现变化,而不是通过修改已有的代码来实现。当然,在现实开发中,只通过继承的方式来升级、维护原有系统只是个理想化的愿景,因此,在实际的开发过程中,修改原有代码、扩展代码往往是同时存在的。
例如:(通过抽象来扩展)put ()和get()方法 是缓存共有的方法。ImageLoader的setImageCache()利用接口可以实现自定义的图片缓存方式。
在这里插入图片描述
在这里插入图片描述

如何搭建扩展性更好的系统:里式替换原则

里式替换:Liskov Substitution Principle(LSP);
LSP定义:所有引用基类的地方必须能透明地使用其子类的对象。人话:只要父类能出现的地方,子类都能出现。父类被替换成子类不会异常或报错,但反过来就不行。(长江后浪推前浪)===>抽象(abstract)
面对对象的语言三大特征:封装、继承、多态。里式替换就是依赖继承与多态这两大特性。
在这里插入图片描述
在这里插入图片描述

让项目拥有变化的魔力:依赖倒置原则

依赖倒置:Dependence Inversion Principle,(DIP);
DIP定义:在这里插入图片描述
在Java语言中,抽象就是指接口或抽象类,两者都是不能直接被实例化的:细节就是实现类实现接口或继承抽象类而产生的类就是细节,其特点就是,可以直接被实例化,也就是可以加上个关键字new产生一个对象。
高层模块就是调用端,低层模块就是具体实现类。面向接口编程是面向对象精髓之一,也就是上面两节强调的抽象。
依赖倒置原则在Java语言中的表现就是:模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的。这又是一个将理论抽象化的实例,其实一句话就可以概括:面向接口编程,或者说是面向抽象编程,这里的抽象指的是接口或者抽象类。在这里插入图片描述

如何让系统有更高的灵活性:接口隔离原则

接口隔离原则:Interface Segregation Principles(ISP)
ISP定义:客户端不应该依赖它不需要的接口,类之间的依赖关系应该建议在最小的接口之上。
ISP的目的就是让系统解开耦合,从而能容易的让系统重构、更改和重新部署。让非常庞大和臃肿的接口拆分成更小、更具体的接口。

更强更好的可扩展性:迪米特原则(待续)

apk升级方面参考链接

Android 实现自动更新及强制更新功能

FileProvider无法获取外置SD卡问题解决方案 | Failed to find configured root that contains

如何在Android7.0(8.0、9.0)系统下通过Intent安装apk

android 8.0以上无法唤起apk安装界面问题

FileProvider 的使用

Android实现3种Notification(状态栏通知)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值