面向对象的五个基本原则

五个基本原则: 
单一职责原则(Single-Resposibility Principle):一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。 
开放封闭原则(Open-Closed principle):软件实体应该是可扩展的,而不可修改的。也就是,对扩展开放,对修改封闭的。 
Liskov替换原则(Liskov-Substituion Principle):子类必须能够替换其基类。这一思想体现为对继承机制的约束规范,只有子类能够替换基类时,才能保证系统在运行期内识别子类,这是保证继承复用的基础。 
依赖倒置原则(Dependecy-Inversion Principle):依赖于抽象。具体而言就是高层模块不依赖于底层模块,二者都同依赖于抽象;抽象不依赖于具体,具体依赖于抽象。 
接口隔离原则(Interface-Segregation Principle):使用多个小的专门的接口,而不要使用一个大的总接口

时间: 2024-10-29 19:10:58

面向对象的五个基本原则的相关文章

面向对象的三个基本元素,五个基本原则

三个基本元素: 1. 封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面.面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治.封装的对象,这些对象通过一个受保护的接口访问其他对象. 2. 继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法.对象的一个新类可以从现有的类中派生,这个过程称为类继 承.新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类).派生类可以从它的基类那里继承方法和实例变

面向对象 三个基本特征 五项基本原则

三个基本元素: 1. 封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面.面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治.封装的对象,这些对象通过一个受保护的接口访问其他对象. 2. 继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法.对象的一个新类可以从现有的类中派生,这个过程称为类继 承.新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类).派生类可以从它的基类那里继承方法和实例变

网站主页设计的五个基本原则

本文来自e良师益友网 一个成功的网站也有几点要素.下面是设计网站的主页面时要遵循的5点基本原则: 1.要简单 你的网站应该下载速度很快.如果你的网站为了给人留下深刻印象而包括了太多的背景,JAVA程序,构架图,插件程序和令人眼花缭乱又要花很长时间下 载的图象,那你的网站就面临危机.一家电话推销公司的研究表明:多数人在等候或待接30秒后会考虑挂线.人们经常说我们的社会已经进入了"信息革命".与其这样说,不如把它称之为我们正在经历"接入信息"的革命.这种能在瞬间搜索信息

面向对象设计模式5大基本原则

"宇宙万物之中,没有一样东西能像思想那么顽固."        一爱默生 首先明确模式是针对面向对象的,它的三大特性,封装.继承.多态. 面向对象设计模式有5大基本原则:单一职责原则.开发封闭原则.依赖倒置原则.接口隔离原则.Liskov替换原则. 而设计模式都是在面向对象的特性以及5大基本原则的基础上衍生而来的具体实现. 1.单一职责原则(SRP): 1.1,SRP(Single Responsibilities Principle)的定义:就一个类而言,应该仅有一个引起它变化的原因

面向对象程序设计——序言之基本原则

从汇编语言.C语言到Java.C#.Python,编程语言一直在不断发展与演进.与此同时,程序设计思想也从面向过程.面向对象.面向服务.面向模式等方面不断被探索.然而归根结底,这些产物的目的,都是为了更方便地解决不断遇到的越来越复杂的问题.而且,这些内容也并非是互斥的. 例如,在一个复杂的系统,我们同时需要满足实际功能的快速高效以及管理模块的高可扩展.可维护,那么较为明智的选择是通过低级语言来实现基础的功能,而通过高级 语言来构建管理能力,使其协同工作来提供系统能力. 再如,在一个面向服务的系统

js面向对象的五种写法

第一种: //第1种写法 function Circle(r) { this.r = r; } Circle.PI = 3.14159; Circle.prototype.area = function() { return Circle.PI * this.r * this.r; } var c = new Circle(1.0); alert(c.area()); 第二种: //第2种写法 var Circle = function() { var obj = new Object(); o

面向对象第五次作业

本次作业大家可以先行尝试思考下具体应该设计几个类,每个类的数据成员和成员函数是什么,然后尝试着实现一下,代码本周不用上交. 问题描述:有品牌汽车的风挡玻璃雨刷(Wiper)是由带刻度盘(Dial)的控制杆(Lever)控制的.这种控制杆有四个位置:停止.间歇.低速和高速,刻度盘有三个位置,分别是数字1.2和3.刻度盘位置指示三种间歇速度,刻度盘的位置只有当控制杆在间歇位置时才有意义.以下表格给出了挡风玻璃雨刷对应控制杆和刻度盘的工作速度(每分钟摇摆次数): 控制杆 停止 间歇 间歇 间歇 低速

面向对象设计的六大基本原则

一.单一职责原则(SRP Single Responsibility Principle) 不要存在多于一个导致类变更的原因.通俗来说,即一个类只负责一项职责. 二.里氏替换原则(LSP Liskov Substitution Principle) 1. 如果对每一个类型为T1的 对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都替换成o2时,程序P的行为没有发生变化,那么类型T2是类型T1的子类型. 2. 所有引用基类的地方必须能透明地使用其子类对象. 三.依赖倒

Python之面向对象(五)类的成员

6.8 面向对象之:类的成员 细分类的组成成员 类大概分为两块区域,如下 class A: name="haha"#第一部分 静态字段(静态变量) def __init__(self):#第二部分 方法部分 pass def func(self):#第二部分:方法部分 pass 具体可以细分为: class A: company_name="haha" #静态变量 (静态字段) _iphone="564545"#私有静态变量(私有静态字段) de