面向对象

面向结构 C PASCAL BASIC

SA

SD

SP

函数

自顶向下

模块化\功能化

输入

输出

三种基本结构:顺序,选择,循环

缺点:

设计不直观,与人思维不太一致

重用性,扩展性差,维护成本高,需求改变时可能要自顶向下修改结构



面向对象 JAVA C++  RUBY

OOA

OOD

OOP

类:属性成员,方法成员

语句接近自然语言语法:主谓宾

封装:将对象的实现细节隐藏起来,通过一些公用方法来暴露该对象的功能(减少耦合,内部任意修改,暴露接口清晰)

继承:为了实现软件复用,子类继承父类后,子类获得父类的相关属性和方法(is-a关系,拥有非private属性和方法除了构造和析构,可以扩展个性,可以重写,代码得到共享易扩展,缺点:增加了耦合,修改父类,子类可能也要修改)

多态:子类对象可以赋值给父类变量,但运行时依然表现出子类的行为特征,意味着同一类型的对象在执行同一个方法,可能产生多种形态特征(运行时动态绑定,实现面向对象的灵活,多数设计模式的基础,缺点:增加了复杂度,增加了编程难度)


抽象:将对象中与问题相关的属性和特征提取出来,作为软件实现的基础,只考虑部分问题,忽略与需求无关的内容

抽象类:不能实例化,有抽象方法(也可以有实现方法),抽象方法必须被子类实现;抽象类拥有尽可能多共同代码,尽量少的数据

接口:不能实例化,全部是抽象方法,子类需要完全实现,接口都是public,有属性只能是static final常量(为了多继承,like-a关系)


类是对对象的抽象,抽象类是对类的抽象,接口是对行为的抽象

抽象类通常是分析共同点,自底向上重构,接口是分析行为特征,自顶向下设计;


派生:利用继承机制,新的类可以从已有的类中派生

类:具有相同或相似性质的一组对象的抽象,是对一类事物的描述,包括属性数据和行为特征,可以理解为概念上的定义

is a:

has a:

对象:是类的具体化实例化,是实际存在的类事物的个体

内聚

耦合

消息

UML:类图,用例图,组件图,顺序图,部署图,活动图,状态图


聚合关系:类似集体和个体

组合关系:整体和部分

依赖关系:互相有交叉

继承关系:子与父




基于对象 JAVASCRIPT

有封装,但没有继承,从而没有多态(多态是在继承的基础上实现的)





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值