发现竟然不能信口即来,惭愧,摘文章贴之:
设计的普遍规律,不只单讲如何设计类,向上到整个组件的设计,向下到类中单个方法的设计
单一职责原则——SRP
就一个类而言,应该仅有一个引起它的变化的原因
原则
最简单,最单纯的事情最容易控制,最有效
类的职责简单而且集中,避免相同的职责分散到不同的类之中,避免一个类承担过多的职责
减少类之间的耦合
当需求变化时,只修改一个地方
组件
每个组件集中做好一件事情
组件的颗粒度
发布的成本
可重用的成本
方法
避免写臃肿的方法
Extract Method
重构
Move Field/Move Class
Extract Method/Extract Class
最简单的,也是最难以掌握的原则
实例分析
Olite
开放封闭原则——OCP
软件实体(类,模块,函数)应该是可以扩展的,但是不可修改的
原则
对扩展是开放的,当需求改变时我们可以对模块进行扩展,使其具有新的功能
对更改是封闭的,对模块扩展时,不需要改动原来的代码
面对抽象而不是面对细节,抽象比细节活的更长
僵化的设计——如果程序中一处改动产生连锁反应。
方法
条件case if/else 语句
重构
Replace Type Code With Class
Replace Type Code With State/Strategy
Replace Conditional with polymorphism
实例
插件
数据驱动的OrderCycle
Liskov替换原则 LSP
子类型必须能够替换它的基类型
原则
主要针对继承的设计原则
所有派生类的行为功能必须和客户程序对其基类所期望的保持一致。
派生类必须满足基类和客户程序的约定
IS-A是关于行为方式的,依赖客户程序的调用方式
重构
Extract Supper Class
实例
长方形和正方形
依赖倒置原则DIP
a:高层模块不应依赖于底层模块,两者都应该依赖于抽象
b:抽象不应该依赖于细节,细节应该依赖于抽象
原则
如何解释倒置
高层依赖底层,重用变得困难,而最经常重用的就是framework和各个独立的功能组件
高层依赖底层,底层的改动直接反馈到高层,形成依赖的传递
面向接口的编程
实例
Ioc模式
DomainObject / DomianObjectDataService
参考
《敏捷软件开发 原则、模式与实践》
分享到:
相关推荐
什么是面向对象设计思想? 面向对象思维本质是什么?
UML简介与面向对象的设计原则 建模的重要性? 如果你想搭一个狗窝,你备好木料、钉子和一些基本工具(如锤子、锯和卷尺) ,就可以开始工作。从制定一点初步的计划到完成一个满足适当功能的狗窝,你 可能不用别人...
面向对象的设计基本原则以及实践建议,不妨看看
面向对象设计模式设计原则 自己下了看吧,,面向对象程序设计时候的 几个基本原则了
这个PPT讲述了面向对象的几个基本原则,很详细,还有代码示例
NULL 博文链接:https://hudeyong926.iteye.com/blog/779070
第1页/共30页 Java面向对象程序设计杨晓燕面向对象基本原则和模式全文共30页,当前为第1页。 类的UML图 UML类图显示类的三个组成部分,第一是Java中定义的类名,第二个是该类的属性,第三个是该类提供的方法。 第一...
面向对象七大基本设计原则.pdf
面向对象设计的基本原则 132 第三单元:用UML辅助系统分析与设计 177 UML简介及常见疑难问题辨析 178 借鉴RUP的UML建模与分析 213 第四单元:设计模式与软件设计思想 267 设计模式 268 常用的软件架构风格及适用情况...
面向对象程序设计六大原则 一、“开-闭”原则(Open-Closed Principle,OCP) 1.1“开-闭”原则的定义及优点 1)定义:一个软件实体应当对扩展开放,对修改关闭( Software entities should be open for extension,but...
介绍面向对象(OOP)的六大基本设计原则,使用markdown格式编写,使用浏览器即可查看! 让我们一起new一个对象吧~O(∩_∩)O
国外计算机科学经典教材-面向对象分析与设计(UML 2.0版) 简介:本书详细介绍了面向对象的分析与设计,全面探讨了面向对象概念、软件开发过程、UML和多层技术。 本书使用最常见的技术和方法,通过一个贯穿全书的...
Java面向对象程序设计杨晓燕面向对象基本原则和模式PPT教案学习.pptx
这是面向对象设计5大设计原则学习文档,文档内容精辟,讲解详细
什么是面向对象方法?面向对象的基本原则主要有哪些? 面向对象方法是一种运用对象、类、继承、封装、聚合、关联、消息、多态 性等概念来构造系统的软件开发方法
为了适应面向对象设计发展,第2版在保留第1版特点的同时,根据当前软件工程的发展趋势和教学特点,精心选择了最主要的基本内容进行介绍。全书包括14章和3个附录,分别为UML导论,对象建模、软件开发过程,餐馆系统的...
Java面向对象程序设计面向对象的几个基本原则PPT教案学习.pptx
为了适应面向对象设计发展,第2版在保留第1版特点的同时,根据当前软件工程的发展趋势和教学特点,精心选择了最主要的基本内容进行介绍。全书包括14章和3个附录,分别为UML导论,对象建模,软件开发过程,餐馆系统的...
结构化程序设计与面向对象程序设计的简述全文共4页,当前为第1页。结构化程序设计与面向对象程序设计的简述全文共4页,当前为第1页。关于结构化程序设计与面向对象程序设计的简述 结构化程序设计与面向对象程序设计...