1.类的设计和接口

类的设计好坏可以从一些方面看出,比如:能否方便地添加新的接口,维护是否简单。
如果说一个程序能用,但是要添加新功能时就很困难,甚至需要把整个程序重写,那么它在设计时肯定出现了问题。

2.消除代码复制

代码复制的情况下,如果程序员想要改变一处地方,那它复制或被复制的地方就要进行修改,否则就存在不一致的问题。这增加了维护程序员的工作量,而且存在造成错误的潜在危险。
解决方案:函数和父类。

3.封装,低耦合

耦合和聚合可以反应一个类设计的好坏。
耦合这个词指的是类和类之间的联系,而耦合度反映了这些类联系的紧密度。
耦合度决定了 修改应用程序的容易程度。低的耦合度使我们要追求的,因为如果类间的联系过于紧密,当程序员想要对一个类的修改也会导致对其他一些类的修改。

程序设计原则——优化程序相关推荐

  1. 程序设计原则(总结)

    程序设计原则(总结) (一)结构化程序设计的主要原则 1.自顶向下 程序设计时,应先考虑总体,后考虑细节:先考虑全局目标,后考虑局部目标.不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步 ...

  2. 性能之巅:定位和优化程序CPU、内存、IO瓶颈

    摘要:性能优化指在不影响系统运行正确性的前提下,使之运行得更快,完成特定功能所需的时间更短,或拥有更强大的服务能力. #一.思维导图 #二.什么是性能优化? 性能优化指在不影响系统运行正确性的前提下, ...

  3. 44 面向对象程序设计原则

    问题: 面向对象程序设计原则有哪些? 答案: (1)单一职责原则(Single Responsibility Principle):如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责.而 ...

  4. Epigentek染色质可及性检测试剂盒原则与程序

    艾美捷Epigentek EpiQuik™ 染色质可及性检测试剂盒是一套完整的优化试剂,旨在通过实时 PCR 对各种生物样品的核小体/转录因子定位进行染色质可及性的基因特异性分析.它是快速检测开放和封 ...

  5. 凸优化 机器学习 深度学习_我应该在机器学习项目中使用哪个优化程序

    凸优化 机器学习 深度学习 This article provides a summary of popular optimizers used in computer vision, natural ...

  6. matlab拓扑优化流程图,Sigmund的99行Matlab拓扑优化程序简析

    引言 Sigmund在2001年在Structural and Multidisciplinary Optimization 上发表一篇名为 "A 99 line topology opti ...

  7. Sigmund的99行Matlab拓扑优化程序简析

    引言 Sigmund在2001年在Structural and Multidisciplinary Optimization 发表一篇名为 "A 99 line topology optim ...

  8. 面向对象的程序设计原则之SOLID原则

    Ò程序设计领域, SOLID (单一功能.开闭原则.里氏替换.接口隔离以及依赖反转)是由罗伯特•C•马丁在21世纪早期 引入的记忆术首字母缩略字,指代了面向对象编程和面向对象设计的五个基本原则.当这些 ...

  9. 程序设计原则之接口隔离原则

    一.什么是接口隔离原则 尽量使用多个专有接口,而不是使用单一的总接口,客户端不应该依赖它不要的接口方法 但是接口数量也不能过多,要适量,否则会增加程序设计的复杂性 二.一个单一总接口的例子 其类图如下 ...

最新文章

  1. VMWare不能安装64位操作系统原因探析
  2. 论记笔记的重要性:以三个电影为例
  3. 【数据库系统概论】考研第三部分重点分析【3.1】
  4. 钉钉轻松顶住信息洪流的原因,竟然是它
  5. 基于JAVA+Swing+MYSQL的超市管理系统
  6. 我的奇思妙想机器人消防员_【小作家专栏】我的奇思妙想(三)
  7. 【UVA10562】Undraw the Trees(括号表示法输出树+fegts读取)
  8. mysql改根用户_MySQL数据库中复位根用户密码的方法 | 很文博客
  9. 数字集群通信的业务与功能
  10. 隐藏Ubuntu 18.04 顶部通知栏( hide top bar)
  11. #torch.bmm()函数解读
  12. python 将列表中的英文或者拼音转换为中文
  13. 指定JDK运行Jar包
  14. Java提取URL某个参数的值
  15. Matlab函数功能学习记录(1)
  16. 腾讯云添加添加二级域名
  17. 文献 | 你的狗狗是否也很擅长“察言观色”?
  18. 链表的定义及使用 综合实战:超市购物车
  19. Vcc、Vee、Vdd、Vss傻傻分不清楚?
  20. http_build_query或者拼接链接等方式中timestamp变成×tamp问题

热门文章

  1. NYOJ 409 郁闷的C小加(三)
  2. k8s通过label来控制pod的位置
  3. PCL已有点类型介绍和增加自定义的点类型
  4. XML学习笔记(二)-- DTD格式规范
  5. C# WinForm 添加Windows Media Player 控件调试出现未能加载文件或程序集Interop.WMPLib,该怎么解决...
  6. 结对项目——电梯调度算法的实现和测试
  7. Squid 代理服务器 编译源码 伪造HTTP_X_FORWARDED_FOR 请求头
  8. ThinkPHP采用模块和操作
  9. 线程的状态、进程的状态
  10. 一些琐碎+分不清的知识点