面向对象的六大原则

单一职责原则

所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。通俗的说,即一个类只负责一项职责,将一组相关性很高的函数、数据封装到一个类中。

开闭原则

对于扩展是开放的,这意味着模块的行为是可以扩展的。当应用的需求改变时,我们可以对模块进行扩展,使其具有满足那些改变的新行为。

对于修改是关闭的,对模块行为进行扩展时,不必改动模块的源代码。

通俗的说,尽量通过扩展的方式实现系统的升级维护和新功能添加,而不是通过修改已有的源代码。

里氏替换原则

使用“抽象(Abstraction)”和“多态(Polymorphism)”将设计中的静态结构改为动态结构,维持设计的封闭性。任何基类可以出现的地方,子类一定可以出现。

在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,反过来则不成立。在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类对象。

依赖倒置原则

高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。抽象不应该依赖于具体实现,具体实现应该依赖于抽象。

程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合(各个模块之间相互传递的参数声明为抽象类型,而不是声明为具体的实现类)。

接口隔离原则

一个类对另一个类的依赖应该建立在最小的接口上。其原则是将非常庞大的、臃肿的接口拆分成更小的更具体的接口。

迪米特原则

又叫作最少知识原则,就是说一个对象应当对其他对象有尽可能少的了解。

通俗地讲,一个类应该对自己需要耦合或调用的类知道得最少,不关心被耦合或调用的类的内部实现,只负责调用你提供的方法。

设计模式有16种,内容很多,我这里就直接发链接

android开发常见的设计模式,Android开发有哪些常用设计模式?相关推荐

  1. 设计模式学习笔记七:常用设计模式原则总结

    前面学习了一部分创建型模式,发现了一个比设计模式更重要的东西:设计模式原则.对于设计模式来说,为什么这个模式要这样解决这个问题,而另一个模式要那样,它们背后都遵循的就是永恒的设计原则.可以说,设计原则 ...

  2. java后台常用设计模式_Java中几个常用设计模式

    1.单例模式(有的书上说叫单态模式其实都一样) 该模式主要目的是使内存中保持1个对象.看下面的例子: package org.sp.singleton; //方法一 public class Sing ...

  3. Android 系统(191)---ODM 开发用户常见需求文档(九)

    Android 系统(191)---ODM 开发用户常见需求文档(九) 阅读数:1122 一:去除摄像头的假对焦框 (vendor/) (mediatek/proprietary/packages/a ...

  4. Android 系统(132)---ODM 开发用户常见需求文档(六)

    ODM 开发用户常见需求文档(六) 一:锁卡界面显示哪张SIM卡 (frameworks/base/packages/Keyguard/src/com/mediatek/keyguard/Teleph ...

  5. Android 系统 (131)---ODM 开发用户常见需求文档(五)

    ODM 开发用户常见需求文档(五) 一:图库中的照片全屏显 (packages/apps/Gallery2/) 第一种: [java] view plaincopy diff --git a/src/ ...

  6. Android 系统 (130)---ODM 开发用户常见需求文档(四)

    ODM 开发用户常见需求文档(四) 一:取消用户模式 (frameworks/) diff --git a/base/packages/SystemUI/res/layout/keyguard_sta ...

  7. Android Camera 开发常见专业术语名词解释

    Android Camera 开发常见专业术语名词解释 参考网址:http://m.blog.csdn.net/king1425/article/details/62224468 相机常见专业术语名词 ...

  8. Android 系统(157)---ODM 开发用户常见需求文档(八)

    一:信号图标,3G改为H,G改为E (frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/Telep ...

  9. Android 系统(145)---ODM 开发用户常见需求文档(七)

    一:相机连拍声音要比成像速度快 (vendor/mediatek/proprietary/packages/apps/Camera/src/com/mediatek/camera/util/Captu ...

  10. Android 系统 (128)---ODM 开发用户常见需求文档(二)

    Android6.0 MTK 需求文档(二) 一:相机中的右边的预览窗口查看图片后选择删除,屏幕界面下方会有一条横线(去除横线的办法) (packages/apps/Gallery2/src/com/ ...

最新文章

  1. [BZOJ1131][POI2008]Sta
  2. Caliburn笔记-基本Command(wpf框架)
  3. Shell笔记9——Shell数组的应用实践
  4. ccf-csp #201912-2 回收站选址
  5. vs找不到dll_零基础学习Python_绝对VS相对
  6. jQuery触发a标签的点击事件无效
  7. 查看数据库文件大小写
  8. new对象时,类名后加括号与不加括号的区别
  9. 22年国内最牛的Java面试八股文合集(全彩版),不接受反驳
  10. 【FPGA】05_按键消抖
  11. javaFX2.0场景(Scene)分析及使用,多场景切换实现
  12. 计算机窗口闪屏,电脑闪屏怎么办?如何解决电脑经常闪屏问题
  13. 大型医院叫号管理系统源码
  14. SayAsYouWish:Fine-grained Control of Image Caption Generation with Abstract Scene Graphs ---- 论文阅读笔记
  15. linux中shell清屏,oeasy教您玩转linux010109clear清屏
  16. 矩阵对角线求和C++
  17. 《卓有成效的管理者》——学习心得(五)
  18. 一、初级篇——指针(*)、取地址()、解引用(*)与引用()的区别
  19. vue搜索关键字标红
  20. 【Linux】NanoPi-NEO2外接spi-lcd

热门文章

  1. The requested profile “pom.xml“ could not be activated because it does not exist. 解决方法
  2. Python json pickle模块
  3. Linux入门时必学文件处理个命令
  4. C++学习手记四:继承和多态
  5. 【Go】语法基础之结构体
  6. 内存是新的硬盘,硬盘是新的磁带
  7. shell第一天,添加普通帐号.
  8. 【转】三天学好ADO
  9. .net 应用迁移到Mono 工具 (Moma)
  10. TechED 2005 博客园兄弟合影