面向对象设计的设计原则

只有深刻理解审计原则,自然而然就能写出设计模式。

通过refactor(重构)得到设计模式。——现在还是不是很理解

1、针对接口编程,而不是针对实现编程

2、优先使用对象组合,而不是类继承

3、封装变化点

1、针对接口编程,而不是针对实现编程

客户(程序)无需知道所使用对象的特定类型,只需要知道对象拥有客户所期望的接口。

2、优先使用对象组合,而不是类继承

类继承通常为“白箱复用”,对象组合通常为“黑箱复用”。继承在某种程度上破坏了封装性,子类父类耦合度高;而对象组合则只要求被组合的对象具有良好定义的接口,耦合度低。

3、封装变化点

使用封装来创建对象之间的分界层,让设计者可以在分界层的一侧进行修改,而不会对另一侧产生不良的影响,从而实现层次之间的松耦合。

几条更具体的设计原则:

1、单一职责原则(SRP)

一个类应该仅有一个引起它变化的原因

2、开放封闭原则(OCP)

类模块应该是可扩展的,但是不可修改(对扩展开放,对更改封闭)。

3、Liskov替换原则(LSP)

子类必须能够替换他们的基类

4、依赖倒置原则(DIP)

高层模块不应该依赖于低层模块,两者都应该依赖于抽象。

抽象不应该依赖于现实细节,现实细节应该依赖于抽象。

5、接口隔离原则(ISP)

不应该强迫客户程序依赖于他们不实用的方法。

面向对象设计的设计原则,布布扣,bubuko.com

时间: 2024-10-14 03:30:07

面向对象设计的设计原则的相关文章

【转】面向对象设计的SOLID原则

面向对象设计的SOLID原则 http://www.cnblogs.com/shanyou/archive/2009/09/21/1570716.html S.O.L.I.D是面向对象设计和编程(OOD&OOP)中几个重要编码原则(Programming Priciple)的首字母缩写. SRP The Single Responsibility Principle 单一责任原则 OCP The Open Closed Principle  开放封闭原则 LSP The Liskov Subst

面向对象的几大设计原则

对于面向对象软件系统的设计而言,在支持可维护性的同时,提高系统的可复用性是一个至关重要的问题,如何同时提高一个软件系统的可维护性和可复用性是面向对象设计需要解决的核心问题之一.在面向对象设计中,可维护性的复用是以设计原则为基础的.每一个原则都蕴含一些面向对象设计的思想,可以从不同的角度提升一个软件结构的设计水平.       面向对象设计原则为支持可维护性复用而诞生,这些原则蕴含在很多设计模式中,它们是从许多设计方案中总结出的指导性原则.面向对象设计原则也是我们用于评价一个设计模式的使用效果的重

面向对象分析与设计:四个基础原则

大家都知道遵循设计原则是开发高质量软件的重要基础,但实际运用时并不容易.Booch在<<面向对象分析与设计>>中提出了四个基础原则: 抽象   核心思想是不变性的概念.去除不关心的属性,而强化重要的属性,帮助人们思考要做什么. 封装  核心是分离关注和信息隐藏,让程序借助最少的工作进行可靠的修改. 模块化  核心思想是分而治之,各个模块应当高内聚.低耦合. 层次结构  核心是对抽象的分级和排序,可以简化对系统的理解.

# 61条面向对象设计的经验原则-《OOD启思录》Arthur J.Riel

61条面向对象设计的经验原则-<OOD启思录>Arthur J.Riel 原文 http://blog.csdn.net/cpluser/article/details/129291 61条面向对象设计的经验原则 摘抄自<OOD 启思录>--Arthur J.Riel 著 鲍志云 译 "你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚.但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起." ----------Arthur J.Riel (1)

面向对象分析与设计—四色原型模式(彩色建模、领域无关模型)(概念版)

阅读目录: 1.背景介绍 2.问自己,UML对你来说有意义吗?它帮助过你对系统进行分析.建模吗? 3.一直以来其实我们被一个缝隙隔开了,使我们对OOAD遥不可及 4.四色原型模式填补这个历史缝隙,让我们真的看见OOAD的希望 5.在四色原型上运用彩色建模增强视觉冲击力 6.通过四色原型模式建模出领域无关模型 7.结束语:建模时你可以不考虑具体实现,但是建模者要懂技术实现 1.背景介绍 至今我都清楚的记得我第一次被面试官问起什么叫"建模"技术时的情景,那是好几年前的事情了,当时是胸有成竹

设计模式 之 设计的 六大原则(6) 开放封闭原则

  开放封闭原则  定义:一个软件实体如类.模块和函数应该对扩展开放,对修改关闭. 问题由来:在软件的生命周期内,因为变化.升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试. 解决方案:当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化. 开闭原则是面向对象设计中最基础的设计原则,它指导我们如何建立稳定灵活的系统.开闭原则可能是设计模式六项原则中定义最模糊的一个了,

面向对象分析与设计

面向对象基本概念 对象:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位.一个对象由一组属性和对这组属性进行操作的一组服务组成.从更抽象的角度来说,对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用:它是一组属性和有权对这些属性进行操作的一组服务的封装体.客观世界是由对象和对象之间的联系组成的.主动对象是一组属性和一组服务的封装体,其中至少有一个服务不需要接收消息就能主动执行(称作主动服务). 类:把众多的事物归纳.划分成一些类是人类在认识

面向对象分析与设计的一些心得

面向对象分析与设计的一些心得 分析.设计与实现 我所理解的真正的对象就是现实生活中客观存在或不存在的真正的对象.这个对象有一个明显的特征就是它具有非常多的状态特征和行为特 征.比如一个人是一个对象,他在一生中会经历无数个交互场景,在这个过程中,每个人的行为特征会不断增多,大部分行为是通过后天学习得到的,只有少数行为 是先天就具有的:另一方面,对于状态特征也是在时不时的变化,比如你的身高.体重,等等.最后,人因为会参与到不同的交互场景,会导致和他关联的各种关联 信息也会不断增多,比如你去上大学,老

面向对象分析与设计—OOD部分

第三部分 面向对象设计 3.1 面向对象设计(OOD)的定义? 在面向对象分析阶段,已经针对用户需求建立起用面向对象概念描述的系统分析模型.在设计阶段,要考虑为实现系统而采用的计算机设备.操作系统.网络.数据库管理系统以及所采用的编程语言等有关因素,进一步运用面向对象的方法对系统进行设计,最后形成一个可以实现的设计模型,即面向对象设计模型. 3.2 面向对象设计(OOD)与面向对象分析(OOA)的关系? 在面向对象分析阶段,针对的是现实世界,把需求转化为面向对象概念所建立的模型,以易于理解问题域