`

OOP三大特性及几大设计原则

oop 
阅读更多

 

封装:

1.隐藏实现细节;
2.恰当地公开接口;
3.将接口和实现分开,增强可维护性;(实现细节改变时,使用该类的客户端程序不需要改变)


继承

1.描述联结类的层次模型;
2.通过抽象,表达共性,实现类的重用;
3.通过子类增加方法和属性以及重写方法,表达差异性;


多态

1.屏蔽子类的差异性,针对共性/接口编程;(向上转型)
2.增强可扩展性;

 


相关设计原则(设计模式一般遵守的原则):
开闭原则(Open-Closed Principle, OCP):软件实体应该对扩展开放,对修改(对已有软件模块、特别是最重要抽象层模块的的更改)关闭。

 

迪米特法则(对于封装)(Law of Demeter LoD)又叫做最少知识原则(Least Knowledge Principle,LKP):对象间尽量最少了解,彻底将API接口和具体实现相分离,模块间仅仅通过API进行通信。

 

里氏代换原则(对于继承)(Liskov Substitution Principle,LSP):如果对于每一个类型为A的对象a,都有类型为B的对象b,使得A定义的所有程序P在所有对象a都替换成b时,程序P没有变化,那么B是A的子类型。

 

合成/聚合复用原则(对于继承)(Composite/Aggregate Reuse Principle,CARP):尽量使用合成/聚合,尽量不要使用继承。


依赖倒转原则(涉及多态)(Dependence Inversion Principle):抽象不应依赖于细节,细节应依赖于抽象;针对接口而非实现编程。

 

三大特性介绍:

http://www.cnblogs.com/hnrainll/archive/2012/09/18/2690811.html

简单介绍:

http://kakajw.iteye.com/blog/1637179

介绍几大原则:

http://blog.csdn.net/anders_zhuo/article/details/8949566

分享到:
评论

相关推荐

    javaoop笔试题-AspectJDemo:AspectJDemo

    Progreming的缩写,在OOP设计中有个单一职责原则,在很多时候都不会有问题,但是当很多模块都需要同一个功能的时候,这个时候还用OOP就会很麻烦。那么AOP在Android中的应用就应运而生。 先从搭环境开始吧,待会会把...

    src.zip Java的面向对象编程·讲解代码

    三大特性:封装、继承、多态 面向对象编程(OOP)和面向过程编程(PP) 方法重载和方法重写 接口和抽象类 包和访问修饰符 构造函数和析构函数 成员变量和局部变量的区别? 适用人群: 这段语言描述的Java的面向...

    C++编程思想

    1.2.7 大程序设计 5 1.3 方法学介绍 5 1.3.1 复杂性 5 1.3.2 内部原则 6 1.3.3 外部原则 7 1.3.4 对象设计的五个阶段 9 1.3.5 方法承诺什么 10 1.3.6 方法应当提供什么 10 1.4 起草:最小的方法 12 1.4.1 前提 13 ...

    《C++ 编程思想》

    1.2.7 大程序设计 5 1.3 方法学介绍 5 1.3.1 复杂性 5 1.3.2 内部原则 6 1.3.3 外部原则 7 1.3.4 对象设计的五个阶段 9 1.3.5 方法承诺什么 10 1.3.6 方法应当提供什么 10 1.4 起草:最小的方法 12 1.4.1 前提 13 ...

    二十三种设计模式【PDF版】

    主要是介绍各种格式流行的软件设计模式,对于程序员的进一步提升起推进作用,有时间可以随便翻翻~~ 23种设计模式汇集 如果你还不了解设计模式是什么的话? 那就先看设计模式引言 ! 学习 GoF 设计模式的重要性 ...

    2023年最新C++详细基础教程,新手适合入门

    1.2.7 大程序设计 5 1.3 方法学介绍 5 1.3.1 复杂性 5 1.3.2 内部原则 6 1.3.3 外部原则 7 1.3.4 对象设计的五个阶段 9 1.3.5 方法承诺什么 10 1.3.6 方法应当提供什么 10 1.4 起草:最小的方法 12 1.4.1 前提 13 ...

    设计模式解析

    对于我正在开发的一套关于OOP和软件开发的音频产品,这种讲述概念的方式给予我很大的启发。 ——Bruce Eckel 我希望基本了解面向对象编程和设计的读者,在完全接触设计模式之前,能够发现这是一本有用的书。...

    积分管理系统java源码-DesignPattern:关于设计模式的一些演示(Java)

    三大基本特性 封装:封装,也就是把客观事物封装成抽象的类,并且类可以把自己的属性和方法只让可信的类操作,对不可信的进行信息隐藏。 继承:继承是指这样一种能力,它可以使用现有的类的所有功能,并在无需重新...

    asp.net知识库

    深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述的补白 asp.net 运行机制初探(httpModule加载) 利用反射来查看对象中的私有变量 关于反射中创建类型实例的两种方法 ASP.Net应用程序的多进程模型 NET委托...

    软件工程知识点

    它包含:软件定义、软件开发、软件运行维护三个时期,并可以细分为可行性研究、项目计划、需求分析、概要设计、详细设计、编码实现与单元测试、系统集成测试、系统确认验证、系统运行与维护等几个阶段。 软件定义...

    编程新手真言......

    8.1 大设计 167 8.1 什么是设计 167 8.2 编程能力,代码控制能力,复用与接口,轮子发明与使用 170 8.3 OO,模板,设计模式与设计 171 8.4 设计能力和程序员能力模型 172 8.4 自上而下设计和自下而上设计 173 8.5 大...

    C++高级参考手册 完全自学 内容详细 讲解通俗易懂

    1.2.7 大程序设计 1.3 方法学介绍 1.3.1 复杂性 1.3.2 内部原则 1.3.3 外部原则 1.3.4 对象设计的五个阶段 1.3.5 方法承诺什么 1.3.6 方法应当提供什么 1.4 起草:最小的方法 1.4.1 前提 1.4.2 高概念 ...

    C++编程思想,用简单的例子和简练的叙述讲解C++编程,别具特色。

    1.2.7 大程序设计 5 1.3 方法学介绍 5 1.3.1 复杂性 5 1.3.2 内部原则 6 1.3.3 外部原则 7 1.3.4 对象设计的五个阶段 9 1.3.5 方法承诺什么 10 1.3.6 方法应当提供什么 10 1.4 起草:最小的方法 12 1.4.1 前提 13 ...

    语言程序设计课后习题答案

    面向对象的软件工程是面向对象方法在软件工程领域的全面应用,它包括面向对象的分析(OOA)、面向对象的设计(OOD)、面向对象的编程(OOP)、面向对象的测试(OOT)和面向对象的软件维护(OOSM)等主要内容。...

    JAVA面向对象详细资料

    35面向对象设计原则 54 1、找出应用中可能需求变化的代码,把它们独立出来,不要和那些需求不变化的的代码混在一起 54 2、针对接口编程,而不要针对实现类编程 54 3、多用组合,少用继承(包含实现) 54 4、为了交互...

    c++编程思想及读后感

    1.2.7 大程序设计 5 1.3 方法学介绍 5 1.3.1 复杂性 5 1.3.2 内部原则 6 1.3.3 外部原则 7 1.3.4 对象设计的五个阶段 9 1.3.5 方法承诺什么 10 1.3.6 方法应当提供什么 10 1.4 起草:最小的方法 12 1.4.1 前提 13 ...

    C++编程思想 (作者学习C++亲身体会及多年教学经验)

    本书作者根据自己学习C++的亲身体会及多年教学经验,用简单的例子和简练的叙述讲解C++编程,别具特色。 全书共分十八章,内容涉及对象的演化、数据抽象、隐藏实现、初始化与清除、函数重载与缺省参数、输入输出流...

    C++编程思想 例子和叙述讲解C++编程

    1.2.7 大程序设计 5 1.3 方法学介绍 5 1.3.1 复杂性 5 1.3.2 内部原则 6 1.3.3 外部原则 7 1.3.4 对象设计的五个阶段 9 1.3.5 方法承诺什么 10 1.3.6 方法应当提供什么 10 1.4 起草:最小的方法 12 1.4.1 前提 13 ...

    PHP 面向对象技术(全面讲解).txt

    架构,OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成,OOP 达到了软件工程的三个目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收 信息、处理数据和向其它...

Global site tag (gtag.js) - Google Analytics