“面向对象软件设计”这个术语及其相关话题对于很多开发人员来说已经是耳熟能详了,甚至听腻了。但是,对不住各位,为了吸引眼球和引起“异性” 注意,本座还是落入俗套选择这个热门话题作为本博客的开张炒作篇目。请见谅,也希望各位看官能放下架子,略读一下本系列的所有文章再喷,可赞可弹可BS, 但勿吐槽,毕竟不想因为本座的文字噪音降低看官的SZ,伤不起呀!!

  言归正传,在如何阐述“面向对象软件设计”这个问题上,本座琢磨了良久,毕竟命题宽泛,表达方式和层次多样。最终决定用相对通俗,以本座的读书和工作经历,在中等层次上进行阐述。

  本座从十年多前走出校门之时就确信软件架构(设计)、数据结构和算法是软件的根本核心,也是衡量个人技术水平的终极标准。因此,从一开始本座就特别关注软件设计方面的知识,本座读过的三本书恰巧体现了软件设计开发的几个方面:

  • 编程开发:《Design Patterns Elements of Reusable Object-Oriented Software》
  • 软件设计:《Agile Software Development: Principles, Patterns, and Practices》
  • 系统架构:《Pattern-Oriented Software Architecture》

  若从编程开发的层次谈软件设计不够全面,有只见树木不见森林之嫌;而从系统架构的层次去谈则显得过于专业,受众不多,会失去大部分读者。因此本系列文 章通过本座多年前阅读:《Agile Software Development》的笔记整理和心得体会来阐述面向对象软件设计原则。

  最后,本座要表达一个重要的观点:任何知识的学习过程都要经历“守”(依葫芦画瓢,获得感觉)、“破”(掌握规律,懂得比较、选择)、“离”(突破条框,自成一派,无招胜有招)三个阶段,在学习的过程中不要墨守成规,需要结合实际情况不断思考和提炼知识,突破自己。

  • 自信来源于哪里?来源于掌握足够多的知识。
  • 求知欲望来源于哪里?来源于未掌握的知识。知识就像一个圆圈,掌握知识越多圆圈越大,圆圈越大则圈外的世界也越大。

  下一章:面向对象软件设计原则(二) —— 软件设计的腐化

CodeProject

面向对象软件设计原则(一) —— 引子相关推荐

  1. 面向对象软件设计原则【JAVA】(开闭原则、里氏代换、依赖倒转、接口隔离、迪米特法则、合成复用原则)

    软件设计原则[JAVA](开闭原则.里氏代换.依赖倒转.接口隔离.迪米特法则.合成复用原则) 1.开闭原则 2.里氏代换原则 3.依赖倒转原则 4.接口隔离原则 5.迪米特法则 6.合成复用原则 1. ...

  2. 面向对象软件设计原则(四) —— 包的设计原则

    随着应用程序的规模和复杂度的增加,需要在更高的层次对它们进行组织.类对于小型应用程序来说事非常方便的组织单元,但是对于大型应用程序来 说,如果仅仅使用类作为唯一的组织单元,就会显得粒度过细.因此,就需 ...

  3. java 设计模式:软件设计原则、面向对象理论、23 种设计模式

    文章目录 软件设计原则 1.单一职责原则(Single Responsibility Principle) 2.开闭原则(Open Closed Principle) 3.里氏代换原则(Liskov ...

  4. 面向对象的设计原则最终篇

    点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 关于面向对象的设计原则我之前已经解释过四种了,分别是单一职责原则,开放关闭原则,里式替换原则, ...

  5. 重拾面向对象软件设计

    简介:从上个世纪五十年代冯·诺依曼创造第一台计算机开始,一直到现在只有短短70年时间,从第一门计算机语言FORTRAN,到现在我们常用的C++,JAVA,PYTHON等,计算机语言的演进速度远超我们所 ...

  6. 软件设计原则(一)开闭原则(Open-Closed Principle, OCP)

    狭义理解:对扩展开发,对修改封闭 在学习设计模式之前,应该先对软件设计原则有一定的了解,设计模式在一定程度上是迎合软件设计原则而产生的,脱离了软件设计原则,设计模式是没有意义的. 开-闭原则(Open ...

  7. wordvba编程代码大全_面向对象、设计原则、设计模式、编程规范、重构

    面向对象.设计原则.设计模式.编程规范.重构 面向对象 主流的三个编程风格有:面向对象,面向过程,函数式编程. 面向对象是最主流的风格,面向对象具有丰富的特性(封装,抽象,继承,多态). 面向对象 面 ...

  8. Java 面向对象的设计原则

    一. 1.面向对象思想的核心: 封装.继承.多态.   2.面向对象编程的追求: 高内聚低耦合的解决方案: 代码的模块化设计: 3.什么是设计模式: 针对反复出现的问题的经典解决方案,是对特定条件下( ...

  9. Java程序员最应该学习的几个面向对象的设计原则

    2019独角兽企业重金招聘Python工程师标准>>> 面向对象的设计原则是OOP编程的核心,但我已经看到大多数Java程序员追逐设计模式,如Singleton模式,Decorato ...

最新文章

  1. shtml与php的区别,htm,html.shtml区别
  2. 《openssl编程》之配置文件
  3. Android 网络知识必知必会
  4. mysql awr 上海用户组_mysql awr v1.0.3修正说明以及发布
  5. 像程序员一样思考:如何仅使用JavaScript,HTML和CSS来构建Snake
  6. swing point 怎么让x 不变_Swing舞出我人生 Vol.02 / 我的人生分为跳舞之前和跳舞之后...
  7. Arcgis javascript那些事儿(十四)——连接oracle
  8. (转)Spring对注解(Annotation)处理源码分析1——扫描和读取Bean定义
  9. 二维随机变量期望公式_多维随机变量函数的分布
  10. oracle定时任务定时无效
  11. 计算机系统的基础必备软件,电脑必装软件推荐:基础篇——够用就行
  12. E/art﹕Failed sending reply to debugger: Broken pipe的解决方法
  13. 2010 我的求职经历(2)
  14. GANs(生成对抗网络)浅析
  15. HCIA网络基础01
  16. Ubuntu下清除DNS缓存的方法
  17. uni-app项目实现用户注册密码前端页面加密
  18. Python进程池之pool.map()函数传入多参数
  19. C语言-计算存款利息。有1000元,想存一年。有3种方法可选:(1)活期,年利率为r1;(2)一年期定期,年利率为r2;(3)存两次半年定期,年利率为r3。请分别计算出一年后按3种方法所得到的本息和。
  20. 简练软考知识点整理-云大物移智区加

热门文章

  1. 万圣节头像小程序源码
  2. 基于JFinal框架开发的企业办公系统-JFinalOA v1.1源码
  3. 74cms骑士人才招聘网系统网站源码 SE版
  4. 手把手教用XNA开发winphone7游戏(二)
  5. 并行编程走下神坛 将成为开发者基本技能?
  6. 怎么让IIS支持PHP
  7. Memcached 学习篇【转】
  8. php获取当地时间 time zone
  9. Kinect v1在windows上的使用教程
  10. Tensorflow学习——Keras