1. 单一职责原则
类的职能要单一:
遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障风险;同理,当修改T2时,也不会使职责P1发生故障风险
2. 里氏替换原则:
子类对象可以替换父类对象。子类不要增加父类没有的约束。这样会导致父类有些方法不能用。从而不能真正的实现 : 子类对象可以替换父类对象,如果子类重写了父类已实现的方法,那么子类调用的父类的方法就完全没用了,从而不是真正意义上的继承。
3. 依赖倒置原则:
高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。
4.接口隔离原则:
在设计接口的时候,给每一个接口设计不多不少的方法,因为,如果设计的方法多了,当某个类通过接口来依赖某个类的时候,被依赖的那个类要实现的方法太多了,会造成那个类中大量的代码冗余,不可过少的原因是,接口太多,会让设计变复杂,且不便于管理。
5.迪米特原则:
低耦合,高内聚,即类A与类B,如果没必要依赖吗,则代码尽量不要耦合,如果这两个类要产生通信,则创建一个中间的通信类C去与这两个类进行交互。但是这样的通信类要适量。
6.开闭原则:
对实现封闭,对扩展开放。即当一个一个方法需要增加其他的功能,或者代码需要重构的时候,要扩展软件的行为,尽量不要去修改已有的代码。用抽象构建框架,方法的实现来扩展细节。

模块化编程的六大原则相关推荐

  1. 【设计原则】面向对象编程的六大原则

    参考文章: http://blog.csdn.net/wangjunkg/article/details/3762132   一.单一职责原则: 全称:"Single-Responsibil ...

  2. java 设计原则_【无尽的编程之路】(java)-设计模式六大原则

    本文主内容主要是列出各项原则的定义与本人对六大原则的感悟.写出来的目是想与大家分享与讨论.正如有句话叫做一千个读者眼中有一千个哈姆雷特,如果大家对这六项原则的理解跟我有所不同,欢迎留言,大家共同探讨. ...

  3. dll模块化设计与编程_FPGA设计原则经验分享

    一.面积和速度如何折中  面积和速度是芯片设计中一对相互制约.影响成本和性能的指标,贯穿FPGA设计的始终.在FPGA设计中,面积是指一个设计消耗的FPGA内部逻辑资源的数量,可以用消耗的触发器和查 ...

  4. PHP 设计模式六大原则

    http://www.cnblogs.com/yujon/p/5536118.html 设计模式六大原则(1):单一职责原则 不要存在多于一个导致类变更的原因.通俗的说,即一个类只负责一项职责 设计模 ...

  5. Java 设计模式六大原则

    Java 设计模式六大原则 单一职责原则 定义:不要存在多于一个导致类变更的原因.通俗的说,即一个类只负责一项职责. 问题由来:类T负责两个不同的职责:职责P1,职责P2.当由于职责P1需求发生改变而 ...

  6. 设计模式六大原则之--开闭原则(OCP)

    设计模式六大原则之--开闭原则(OCP) 前言 1 描述 2 理解: 3 问题由来: 4 使用LoD的好处: 5 难点: 6 最佳实践: 7 范例: 前言 The Open - Closed Prin ...

  7. 设计模式六大原则(初步理解)

    之前听过设计模式,却从未听说过六大原则,学习设计模式,首先要学习的就是设计原则,看大牛的博客(https://www.cnblogs.com/pony1223/p/7594803.html)记录一下. ...

  8. java设计模式六大原则之场景应用分析

    面对项目中如此众多的设计模式,我们有时候无法 下手.在强大的设计框架也终脱离不了23种设计模式,6大原则.我们只要把内功修炼好,掌握其精髓也离我们不远了... 目录: 设计模式六大原则(1):单一职责 ...

  9. (转)设计模式之六大原则

    源地址:http://blog.csdn.net/scboyhj__/article/details/47844639 1. 单一职责原则 -Single Responsibility Princip ...

  10. 软件设计模式六大原则

    设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则 设计模式六大原则(3):依赖倒置原则 设计模式六大原则(4):接口隔离原则 设计模式六大原则(5):迪米特法则 设计模式六大 ...

最新文章

  1. 2014腾讯校园招聘研发笔试题
  2. 【Android 插件化】Hook 插件化框架 ( 反射工具类 | 反射常用操作整理 )
  3. Cisco路由器配置命令之模式转换命令
  4. python定义函数的命令_Python入门 | 定义函数
  5. 【转】Dynamics CRM 365零基础入门学习(一)Dynamics介绍以及开发工具配置
  6. linux中ls文件内存大小,Linux下用ls和du命令查看文件以及文件夹大小
  7. 影视源码更新MKCMS影视系统6.3完整版源码
  8. 【NanoPi2试用体验】nanopi2下的二维码识别
  9. DTM、DEM与DSM的区别及其他
  10. web测试-WEB常用测试用例集
  11. NDK撩妹三部曲(四)—NDK 开发如何优雅的定位 Native 异常,看这篇就够了
  12. Android版疯狂填字第三关,iOS/安卓版《疯狂填字》答案攻略第三十八关
  13. 免Root卸载系统预装应用
  14. 支付宝信用卡还款即将收费,3个方法免手续费!
  15. 【测试算法】深入浅出Pairwise 算法
  16. 如果你决定离职,请把这五样东西留下,要不然你必身败名裂
  17. javaweb物品租赁系统源码(毕设)
  18. oracle11g压力测试工具,ORACLE RDBMS 压力测试工具:orabm orastress
  19. 2021年全球点对点天线行业调研及趋势分析报告
  20. 人死前最后悔的事是什么?

热门文章

  1. Netty Websocket多人多房间聊天室Demo
  2. java聊天室登录页面_做好的Java聊天室怎么加登录功能,代码如下
  3. 小程序获取收货地址流程
  4. win10家庭版的常见问题1
  5. word没自动保存?===如何通过asd文件恢复
  6. HCIE-Routing Switching认证
  7. SI446x系列之路--基本操作
  8. [日推荐]『Brick4积木』乐高迷不可错过的小工具
  9. FAT32、exFAT、NTFS
  10. 【深度学习环境搭建<三>】Ubuntu 中Anaconda + Pycharm 开发环境安装