大话设计模式(三 复制VS复用)

(续上篇) 
        小菜:“我明白了,他说用任意一种面向对象语言实现,那意思就是要用面向对象的编程方法去实现,对吗?OK,这个我学过,只不过当时我没想到而已。”
        大鸟:“所有编程初学者都会有这样的问题,就是碰到问题就直觉的用计算机能够理解的逻辑来描述和表达待解决的问题及具体的求解过程。这其实是用计算机的方式去思考,比如计算器这个程序,先要求输入两个数和运算符号,然后根据运算符号判断选择如何运算,得到结果,这本身没有错,但这样的思维却使得我们的程序只为满足实现当前的需求,程序不容易维护,不容易扩展,更不容易复用。从而达不到高质量代码的要求。” 
        小菜:“鸟哥呀,我有点糊涂了,如何才能容易维护,容易扩展,又容易复用呢,能不能具体点?”
        大鸟:“比如说,我现在要求你再写一个windows的计算器,你现在的代码能不能复用呢?”

小菜:“那还不简单,把代码复制过去不就行了吗?改动又不大,不算麻烦。”
       大鸟:“小菜看来还是小菜呀,有人说初级程序员的工作就是Ctrl+C和Ctrl+V,这其实是非常不好的编码习惯,因为当你的代码中重复的代码多到一定程度,维护的时候,可能就是一场灾难。越大的系统,这种方式带来的问题越严重,编程有一原则,就是用尽可能的办法去避免重复。想想看,你写的这段代码,有哪些是和控制台无关的,而只是和计算器有关的?”
(待续)
出处:http://www.cnblogs.com/cj723/archive/2006/08/30/490253.html

大话设计模式(三 复制VS复用)相关推荐

  1. 大话设计模式三之单一职责原则、开放-封闭原则、依赖倒置原则、里氏代换原则

    单一职责原则 单一职责原则(SRP),意思就是说,功能要单一.准确解释是,就一个类而言,应该仅有一个引起它变化的原因. 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或 ...

  2. 《大话设计模式》第29章-OOTV杯超级模式大赛—模式总结(三)

    <大话设计模式>将于11月底由清华大学出版社出版 <大话设计模式>第29章-OOTV杯超级模式大赛-模式总结(一) <大话设计模式>第29章-OOTV杯超级模式大赛 ...

  3. 大话设计模式读书笔记

    主题 概要 设计模式 大话设计模式读书笔记 编辑 时间 新建 20170423 序号 参考资料 1 大话设计模式 重新看了一遍设计模式,除了一些已经特别熟悉的模式,都自己敲了一遍代码,有些豁然开朗的感 ...

  4. 《大话设计模式》读书总结

    2019独角兽企业重金招聘Python工程师标准>>> 大三上学期(2010年下半年),软件工程专业开设了 设计模式这门B类课.当时,没有买学校的,4人帮写的那本经典的设计模式书籍. ...

  5. java思想 设计模式 《大话设计模式》知识总结

    本文大部分内容来自<大话设计模式>. java很适合多人协作,但代码量很大. 与其抱怨需求总是变化,不如改变开发过程,从而更有效地应对变化.面向对象就是为了解决变化的问题. 文章目录 1. ...

  6. 《大话设计模式》学习笔记

    睡醒后就拿起<大话设计模式>这本书来看.之前对于设计模式只是一知半解,看了之后感觉受益匪浅. 在此做个小笔记.也强烈建议像我这样的萌新去看看.(很重要.很重要.很重要...) 前言 首先复 ...

  7. 《大话设计模式 上》

    <大话设计模式 上> 简单工厂模式 (静态方法创建并返回实例对象) 工厂方法模式 抽象工厂模式 策略模式(有多种可选的策略时) 装饰模式 桥接模式 代理模式 原型模式 模板方法模式 外观模 ...

  8. 大话设计模式、UML、设计模式Java版完全总结

    此篇博客为阅读大话设计模式后的笔记记录( 读完本文>≈读完<大话设计模式> ),注意是笔记形式,优先适合于对设计模式有一定了解的读者,希望短时间快速温习的读者,同时也对所有设计模式添 ...

  9. 《大话设计模式》第29章-OOTV杯超级模式大赛—模式总结(四)

    <大话设计模式>将于11月底由清华大学出版社出版 <大话设计模式>第29章-OOTV杯超级模式大赛-模式总结(一) <大话设计模式>第29章-OOTV杯超级模式大赛 ...

最新文章

  1. 软件安全加解密,程序授权管理控件CrypKey SDK
  2. 虚拟机ping不通主机,但是主机可以ping通虚拟机(转载)
  3. LeetCode 第 36 场双周赛(304/2204,前13.8%)
  4. JVM内存管理:深入垃圾收集器与内存分配策略
  5. 51nod 1050循环数组最大字段和
  6. CSS代码属性大全(HTML)
  7. pandas小记:pandas基本设置
  8. (转)c# Invoke和BeginInvoke区别
  9. ie visio 打开_Visio viewer 不能从IE打开vsd文件
  10. 京东订单系统高可用架构及演变过程
  11. 用matlab画相频曲线_用MATLAB进行系统频率特性曲线绘制
  12. MATLAB周边第三期-坤坤的唱跳rap
  13. 其他:管理员账户已被禁用
  14. windows之批处理读取注册表,得到我的文档默认路径
  15. 怎么用别的方法里的变量_微波炉烤鸡翅的方法 怎么用微波炉烤鸡翅
  16. 打开Excel新窗口的方法
  17. 修复登录答题微信小程序源码下载
  18. windows服务器安全设置详解攻略
  19. 联想 e460 查看 内存卡槽数
  20. 面试官通用面试问题---------------经典回答

热门文章

  1. Docker Review - 图形化工具 Portainer
  2. vins 解读_代码解读 | VINS 视觉前端
  3. 面向过程和面向对象的区别
  4. java map移除key为空_Java实现过滤掉map集合中key或value为空的值示例
  5. 在ubuntu上使用SSH客户端
  6. c语言中c为字符型便量,c='97'是否正确,C语言判断题Word版
  7. linux挂载盘符扫描,Linux下挂载ISCSI的盘符问题
  8. 2021-04-14 Matlab实现模糊聚类分析 FCM
  9. 2020-12-11 keras通过model.fit_generator训练模型(节省内存)
  10. matlab simulink 求解连续微分系统 混沌系统