我们在应用程序开发中,一般要求尽量两做到可维护性和可复用性。
        应用程序的复用可以提高应用程序的开发效率和质量,节约开发成本,恰当的复用还可以改善系统的可维护性。而在面向对象的设计里面,可维护性复用都是以面向对象设计原则为基础的,这些设计原则首先都是复用的原则。遵循这些设计原则可以有效地提高系统的复用性,同时提高系统的可维护性。 面向对象设计原则和设计模式也是对系统进行合理重构的指导方针。

好代码的总体愿景指标是:

代码整洁易读:代码能让人容易阅读、跟踪和理解:代码简单、编码风格一致、代码意图表达明确、恰到好处的注视。
    可维护性高:理解、改正、改动、改进软件的难易程度。因素有可理解性、可测试性和可修改性,包括编写和运行的维护性,比如强烈依赖底层系统的服务就不太好维护。
    可扩展性强:方便增加新功能并且对原功能没有影响。如果在不需要修改原的代码情况下扩展新功能并确保旧功能正常,那可扩展性就非常好。
    可靠性(稳定性):要求系统在发生硬件故障,软件故障,或人为错误时,仍然可以正常工作。

 

设计原则:面向对象设计原则详解相关推荐

  1. 【软件分析】软件分析、设计与建模迭代式详解

    软件分析.设计与建模迭代式详解 1.introduction 1.1 OOA/D 1.2 Iterative, Evolutionary, and Agile 2.Case Study and Req ...

  2. php面向对象代码_PHP面向对象之抽象类详解(代码实例)

    [摘要] PHP即"超文本预处理器",是一种通用开源脚本语言.PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言.PHP独特的语法混合了C.Java.Perl以及 ...

  3. Java 面向对象:封装详解

    Java 面向对象:封装详解 封装:属性私有,get/set 属性私有化 提供get/set方法操作数据 优点: 1.提高程序的安全性,保护数据 2.隐藏代码的实现细节 3.统一接口 4.系统可维护性 ...

  4. Java 面向对象:构造器详解

    Java 面向对象:构造器详解 构造器: 和类名相同 没有返回值,也不能写void 作用: new本质是调用构造方法 初始化对象的值 注意点: 定义有参构造之后,如果想使用无参构造,显示的定义一个无参 ...

  5. 依赖倒置原则——面向对象设计原则

    前两节我们详细介绍了面向对象设计原则中的开闭原则和里氏替换原则,在本节中我们来介绍依赖倒置原则. 依赖倒置原则的定义 依赖倒置原则(Dependence Inversion Principle,DIP ...

  6. 8.接口隔离原则——面向对象设计原则

    面向对象设计原则除了开闭原则.里氏替换原则.依赖倒置原则和单一职责原则以外,还有接口隔离原则.迪米特法则和合成复用原则.本节将详细介绍接口隔离原则. 接口隔离原则的定义 接口隔离原则(Interfac ...

  7. 线程池的执行原则及配置参数详解

    池是一种非常优秀的设计思想,通过建立池可以有效的利用系统资源,节约系统性能.Java 中的线程池就是一种非常好的实现,从 JDK 1.5 开始 Java 提供了一个线程工厂 Executors 用来生 ...

  8. 归纳:数据库设计的六个阶段详解(有这一篇就够了)

    客官进来请坐下,耐心看完收获大! 数据库设计过程的六个阶段: 1.系统需求分析阶段: 2.概念结构设计阶段: 3.逻辑结构设计阶段: 4.数据库物理设计阶段: 5.数据库实施阶段: 6.数据库运行和维 ...

  9. (转)归纳:数据库设计的六个阶段详解(有这一篇就够了)

    转自:https://blog.csdn.net/qq_39132095/article/details/103247080?utm_medium=distribute.pc_relevant.non ...

  10. 面向对象五大基本原则详解

    面向对象五大基本原则 单一职责原则 计算器实例 开放封闭原则(OCP) 开放封闭原则示例(书店售书) 里氏替换原则(LSP) 接口隔离原则 依赖倒置原则 单一职责原则 一个类最好只有一个能引起变化的原 ...

最新文章

  1. js 转义成html,js转义html,反转义
  2. ExtJS 的工具条及菜单
  3. BZOJ.4552.[HEOI2016/TJOI2016]排序(线段树合并/二分 线段树)
  4. 7款Flash和Javascript网页视频播放器
  5. 面试必会系列 - 1.4 类加载机制
  6. 收起.NET程序的dll来
  7. ECC椭圆曲线加密算法原理
  8. fx5u以太网通讯设置_操作示例 | 实现S7300和FX5U的数据交换
  9. “我没搞懂元宇宙,但一天能赚9w块”
  10. QT基于Npcap设计的网络抓包小程序
  11. 第十三届“华中杯”大学生数学建模挑战赛题目 A 题 马赛克瓷砖选色问题
  12. linux生成.so库,调用.so库函数
  13. IntelliJ IDEA 解决控制台不能显示日志
  14. word2vec:基于层级 softmax 和负采样的 Skip-Gram
  15. Android 详解第三方介质交互之NFC,并且实现读你的交通卡,酒店房卡,学生证!
  16. Vue中el-dialog的用法
  17. ”Could not find tag for codec none in stream #0, codec not currently supported in container”的解决方法
  18. 超星阅读器文件转为PDF文件
  19. 使用Pandoc对文档格式转换(latex转doc)
  20. Android——Tcp服务端实现

热门文章

  1. 公安部:铁路春运旅客发送量将再创新高 安保注重四方面
  2. js 字符串去除收尾空格
  3. c语言打印直角三角形
  4. 字符串匹配算法(KMP算法JAVA版)
  5. UDP-疑难杂症和使用
  6. python编程命令大全_Python命令简介,python命令使用大全
  7. 居家社区养老服务方案
  8. c/c++实现图像旋转任意角度
  9. 初学linux时遇到的那些哭笑不得的问题
  10. 将自己的手写体制成你自己的字体