疯狂java讲义2_《疯狂Java讲义》 2-理解面向对象

总结

1、结构化程序设计

按功能来分析系统需求:自顶向下,逐步求精,模块化等

结构化分析(Structured Analysis)->结构化设计(SD)->结构化编程(SP)

面向功能,面向数据流,最小单元是函数

三种基本结构:顺序结构(顺序执行所有操作,直到出口),选择结构(按条件选择分支执行),循环型结构

Java保留了goto,但拒绝使用

2、面向对象程序设计

把握事物的本质特点,抽象成类(共同属性、共同方法的一类事物),作为系统的基本构成单元

OOA->OOD->OOP

成员变量(状态函数)+方法(行为)=类定义粒度比面向过程大,函数相当于方法

基本特征:

封装(Encapsulation),将对象实现细节隐藏起来,用共用方法来暴露对象的功能

继承(Inheritance),实现软件复用

多态(Polymorphism),同一方法实现多种行为特征,如不同子类间

类是对象的抽象,对象是类的实例(instance)。消息是实例之间通信的机制。

面向对象与基于对象不同(JavaScript),注意继承和多态

Java中一切都是对象,有一个唯一标识来引用它。

3、UML  同一建模语言

OOA和OOD需要统一的符号来记录,UML2.0

6ac8fe4c25c4169794a073def1427176.png

3.1 用例图

用例代表系统的功能模块,不说明如何实现,仅仅是对系统功能的描述。

椭圆代表用例,小人代表角色,以简单的线段表示之间关系。常用来表达系统,一个简单的BBS系统用例图:

25c50dec07382f06b9b903fe511f218e.png

3.2 类图

表示系统包含哪些实体,实体之间如何关联。

类用包含三个部分的矩形来表示:名称,属性,方法

c394d2435a7c726d7786a3eb5cb7e81b.png

类之间的三种基本关系:关联(聚合,组合),泛化(继承),依赖

实线代表双向关联,两个类间可以互相访问

带箭头的实线表示单向关联

关联和属性很像,类中某一属性引用到另一实体即成了关联

聚合:某实体可以是多种实体的组成部分,用带空心棱形框的实线表示

组合:某实体只能是该实体的组成部分,用带实心棱形框的实线表示

泛化表示子类是一种特殊的父类,用带空心三角形的实线表示

一个类的改动会导致另一个类的改动,即依赖,用带箭头的虚线表示,箭头指向被依赖的实体

e8b8c9ad4ca55eb3bff2a49f8cd50337.png

d28f5cbd495270662a8f1b4d802c5f76.png

a05d19d6e7fefec9ba5f2c20e67398f4.png

3.3 组件图

大型应用程序由多个可部署的组件组成。JAR,WAR,DDL(C)

显示组件的依赖关系。包含组件、接口和port等图元。圆代表接口,Y依赖该接口。

5749ee8d57bf31383891a32013f8ac3b.png

3.4 部署图

用于描述软件系统如何部署到硬件环境中,以及如何通信。

在组件图上加了节点(处理器&设备)的概念,用三维立方体来表示。

39b70353b49da568734faadd41706784.png

3.5 顺序图

显示用例的详细流程

垂直纬度:以时间顺序显示消息/调用的序列;水平纬度:显示消息被发送到的对象实例。

62d2c4608ef850a1a7bc6637d9a0bad9.png

11ec42c570440eaa0b9eed1e420b754a.png

3.6 演化图:活动图 状态机图

7954d788b80076a514ba9fda06f1bfa5.png

62e3d12a949cf7f4d3c338fe9059e80f.png

活动图用圆角矩阵代表活动,带箭头的实线代表事件。支持并发。只有一个开始,可以多个结束途径。

972905972235ef5b926f0d9551c2e17e.png

f59b2b749e8ee38541c61062e74ec069.png

199790b64a454e18832110d0db4cf5ab.png

问题

1、UML还不熟悉,别当成负担,要当作工具,怎么合理利用是个问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值