备注 不要重复自己,也不要重复别人,一旦养成了“拷贝和粘贴”的习惯,写程序的时候非常容易导致重复,好在一直暗示自己要稍后进行重构,本文给出一个重构的示例. 需求 需求:按照年.月和日显示销售数据,根据不同的周期类型,有三个问题需要注意: 默认的日期范围不同 图表中显示的格式不同 默认的模拟数据不同(发布环境会使用真实的数据) 如下图: 第一遍代码(重复的代码) 最爱的拷贝和粘贴. 默认的日期范围不同 private void ResetStartDateAndEndDate() { this.E…
http://www.cnblogs.com/happyframework/p/3300170.html 目录 备注需求第一遍代码(重复的代码)第二遍代码(消除重复)备注 备注返回目录 不要重复自己,也不要重复别人,一旦养成了“拷贝和粘贴”的习惯,写程序的时候非常容易导致重复,好在一直暗示自己要稍后进行重构,本文给出一个重构的示例. 需求返回目录 需求:按照年.月和日显示销售数据,根据不同的周期类型,有三个问题需要注意: 默认的日期范围不同 图表中显示的格式不同 默认的模拟数据不同(发布环境会使…
转自:https://my.oschina.net/stefanzhlg/blog/372413 我们在平时的编码中,我们经常会遇到这样的情况: 使用过多的switch/case 或者 if else 语句,非常不爽,也违背了面向对象的原则: public static Validator newInstance(String validatorType) { if ("INT".equals(validatorType)) return new IntValidator(); els…
http://www.ibm.com/developerworks/cn/webservices/ws-soa-design/ 引言 面向服务的体系结构(Service-Oriented Architecture,SOA)提供了支持业务灵活性的 IT 灵活性远景.在本文中,我们将重点讨论 IT 灵活性的两个特定方面:流程实现的分离和简化.如何说明和实现各个服务对 IT 灵活性的这些方面有很大的影响,因此也对业务灵活性有很大的影响.我们此处的目标是提供支持 SOA 远景的服务说明和实现指南.本文的…
从今年的七月份开始学习设计模式到9月底,设计模式全部学完了,在学习期间,总共过了两篇:第一篇看完设计模式后,感觉只是脑子里面有印象但无法言语.于是决定在看一篇,到9月份第二篇设计模式总于看完了,这一篇看完,脑子里面已经能够对绝大多数的设计模式能够说出其核心思想且可以画出类图也知道应用场景,算是一个进步,但可能还不能够特别熟练的使用,可能需要多多巩固和强化使用才能够完全理解设计模式的精髓所在.学习期间收获还是不少的: 1.从只听过设计模式到学习了所有的设计模式,并写了不少设计模式的博客,在公司期间…
开-闭原则就是软件实体应当对扩展开放,对修改关闭.(Software entities should be open for extension,but closed for modification.) 正如牛顿三大定律在经典力学中的位置一样,开闭原则是面向对象的可复用设计(Object Oriented Design或OOD)的基石,是最基础的设计原则,其它的设计原则都是开闭原则的具体形态,也就是说其它的设计原则是指导设计的工具和方法,而开闭原则才是其精神领袖.依照编程语言的称谓,开闭原则是…
面向对象 现在,主流的编程范式或者是编程风格有三种,它们分别是面向过程.面向对象和函数式编程.面向对象这种编程风格又是这其中最主流的.现在比较流行的编程语言大部分都是面向对象编程语言.大部分项目也都是基于面向对象编程风格开发的.面向对象编程因为其具有丰富的特性(封装.抽象.继承.多态),可以实现很多复杂的设计思路,是很多设计原则.设计模式编码实现的基础. 所以,在专栏的最开始,我们会详细地讲解面向对象编程的相关的知识,为学习后面的内容做铺垫.对于这部分内容,你需要掌握下面这 7 个大的知识点.…
"面向对象设计五大原则"和良性依赖原则在应付变化方面的作用. SOLID(单一功能.开闭原则.里氏替换.接口隔离以及依赖反转) 单一职责原则(Single-Resposibility Principle)."对一个类而言,应该仅有一个引起它变化的原因."本原则是我们非常熟悉地"高内聚性原则"的引申,但是通过将"职责"极具创意地定义为"变化的原因",使得本原则极具操作性,尽显大师风范.同时,本原则还揭示了内聚…
面向对象设计原则是OOPS编程的核心, 但我见过的大多数Java程序员热心于像Singleton (单例) . Decorator(装饰器).Observer(观察者) 等设计模式,而没有把足够多的注意力放在学习面向对象的分析和设计上面.学习面向对象编程像"抽象"."封装"."多态"."继承" 等基础知识是重要的,但同时为了创建简洁.模块化的设计,了解这些设计原则也同等重要.我经常看到不同经验水平的java程序员,他们有的不知…
大 量互联网公司都在拥抱SOA和服务化,但业界对SOA的很多讨论都比较偏向高大上.本文试图从稍微不同的角度,以相对接地气的方式来讨论SOA, 集中讨论SOA在微观实践层面中的缘起.本质和具体操作方式,另外也用相当篇幅介绍了当今互联网行业中各种流行的远程调用技术等等,比较适合从事实际工作 的架构师和程序员来阅读. 为了方便阅读,本话题将分为两篇展现.本文是上篇,着眼于微观SOA的定义,并简单分析其核心原则. 亚马逊CEO杰夫•贝佐斯:鲜为人知的SOA大师 由于SOA有相当的难度和门槛,不妨先从一个…