1、面向对象与面向过程
(1)面向过程:世界的一切都不是孤立的,是紧密联系在一起的,缺一不可,互相作用,并形成一个个小系统,然后小系统组合完成大系统,适合于需求明确不复杂的项目。
理解:想象一下你正在做一顿大餐。面向过程的方式就是按照菜谱一步一步来,先切菜、再炒菜、最后装盘。每一步都明确且顺序执行,适合那些步骤清晰、不常变动的任务。
(2)面向对象:世界是分割开来的对象(物件)组成,对象是由数据及其操作所构成的封装体,是系统中用来描述客观事物的一个模块,是构成系统的基本单位。对象包含3个基本要素,分别是对象标识、对象状态和对象行为。
理解:再想象一下,你不再只是按照菜谱做菜,而是把每个食材(比如土豆、胡萝卜)都看作是一个有生命的“对象”。这些对象有自己的属性(如颜色、形状、大小),还有自己的行为(如被削皮、被切片)。你通过告诉这些对象做什么(比如“土豆,你去切一下”),它们就会完成自己的任务,而不需要你亲自去动手切每一片。面向对象的方式让系统更加灵活和可扩展,因为你可以轻松地添加新的对象或修改现有对象的行为。
(标识号、属性、动作)除非有在特定场景下,这些对象是“自私”的,其内部就是一个黑匣子,什么也看不到,叫做封装。它们之间通过消息传递信息,孤立的对象之间进行了某些信息交互才表现出我们看到的一个过程,否则它们将“老死不相往来”。对象喜欢群居,并且总是“物以类聚人以群分”,这些相似性质的对象组成一个部落,对象们寻找性质相似的群居的过程叫做抽象,它们组成的部落叫做类。
如:龙生龙凤生凤,老鼠的孩子会打洞,也能飞上天等—-继承,继承的反关系叫做泛化。
龙生九子—继承,九子各不相同—-泛化
每个对象都有多个外貌,不同情况下展现不同的外貌,但是本质只有一个,叫做接口。
2、面向对象基本概念
面向对象的基本概念包括对象、类、抽象、封装、继承、多态、接口、消息、组件、复用和模式等。
(1)对象:由数据及其操作所构成的封装体,是系统中用来描述客观事物的一个模块,是构成系统的基本单位。对象三个基本要素:对象标识、对象状态、对象行为。
理解:比如一个“人”对象,你(男/女)朋友有姓名、年龄、体重等属性,以及吃饭、睡觉等行为。
(2)类:现实世界中实体的形式化描述,类将该实体的属性(数据)和操作(函数)封装在一起。类定义了属于该类的所有对象的共同特性,一个类可以定义多个对象。对象是类的实例,类是对象的模板。如果将对象比作房子,那么类就是房子的设计图纸。
理解:一群相似对象的模板,比如“人类”就是一个类,它定义了所有人共有的属性和行为,再比如“教师”类,也是有共同的属性和行为。
(3)抽象:通过特定的实例抽取共同特征以后形成概念的过程,类是一组对象的抽象。
理解:从具体事物中提取出共同特征的过程,比如从“苹果”、“香蕉”等具体水果中提取出“水果”这个概念。
(4)封装:将相关的概念组成一个单元模块,并通过一个名称来引用它。
理解:把对象的属性和行为藏起来,只通过特定的接口(比如方法)与外界交互,就像手机电池,你不需要知道它里面是怎么工作的,只需要知道怎么充电和使用。
(5)继承:表示类之间的层次关系(父类与子类),这种关系使得某类对象可以继承另外一类对象的特征,继承又可分为单继承和多继承。
理解:子类可以继承父类的属性和行为,就像儿子可以继承父亲的姓氏和某些特征。
(6)接口:描述对操作规范的说明,其只说明操作应该做什么,并没有定义操作如何做。
理解:定义了对象应该做什么,但不具体实现,就像手机充电器接口,只要符合这个接口,就可以给手机充电,但具体怎么充,由充电器自己决定。
(7)消息:体现对象间的交互,通过它向目标对象发送操作请求。
理解:对象之间交流的方式,比如你告诉天猫精灵“播放音乐”,最直观的就是你和对象聊天通过微信消息的传递,这些都是属于消息。
(8)组件:表示软件系统可替换的、物理的组成部分,封装了模块功能的实现。
理解:软件系统的独立部分,可以单独开发、测试和替换,就像汽车的发动机、轮胎等。
(9)复用:指将已有的软件及其有效成分用于构造新的软件或系统,组件技术是软件复用实现的关键。
理解:利用已有的软件组件来构建新的系统,就像搭积木一样,每个积木都是可以复用的,今天你搭建的房子可以使用这些积木,明天你搭建了一个飞机也可以使用这些积木。
(10)多态:定义同一个操作或属性名称在多个类中,并在每个类中可以有不同的体现。
理解:同一个操作或属性在不同对象上有不同的表现,比如“跑”这个动作,人跑和狗跑的方式就不一样。
(11)模式:描述了一个不断重复发生的问题,以及该问题的解决方案,其包括特定环境+问题+ 解决方案3个组成部分。
理解:解决常见问题的经验总结,比如“工厂模式”就是用来创建对象的常用方式。
3、面向对象分析与设计
(1)面向面向对象系统分析的模型由用例模型、类-对象模型、对象-关系模型和对象-行为模型组成。
理解:通过用例模型、类-对象模型等来分析系统需求,就像做菜前先了解需要什么食材和工具一样。
(2)面向对象系统设计基于系统分析得出的问题域模型,用面向对象的方法设计出软件基础架构(概要设计)和完整的类结构(详细设计),以实现业务功能。
理解:基于分析结果,设计系统的架构和类结构,就像设计菜谱和厨房布局一样,我们可以先大概的设计,比如菜谱大概可以设为湘菜、川菜、杭帮菜,厨房布局的大概设计可以设为洗菜池、燃气灶部分,然后再针对每个大概的设计进行详细的设计,详细设计就是方方面面都考虑到了。
(3)面向对象系统设计主要包括用例设计、类设计和子系统设计。
(4)RUP是使用面向对象技术进行软件开发实践的最佳实践之一。
理解:一种流行的面向对象软件开发方法,它提供了一套完整的流程和最佳实践,继续使用上面造厨房的例子,比如你是找的专业建设厨房的施工队,他们会有严格的操作流程和标准,比如他们必须要先去买水泥、瓷砖、材料,然后施工过程中必须要把误差减少到1%以内,最后结束了还必须要打扫干净。
4、统一建模语言(UML)
(1)UML是一种可视化的建模语言,而不是编程语言。分为构造块、规则和公共机制三个部分。适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具。它比较适合用于迭代式的开发过程,是为支持大部分现存的面向对象开发过程而设计的。
理解:可以让不同背景的人,如开发人员、测试人员、设计师等都能理解系统的设计。UML图就像是图纸,可以用它来描述系统的各种模型和关系。静态图展示了系统的静态结构(如类、对象、组件等),而动态图则展示了系统的行为(如对象之间的交互、状态变化等)
(2)UML图提供了对系统进行建模的描述方式,主要包括:
静态图:用例图、类图、对象图、组/构件图、部署图(配置图)。
动态图:序列图、状态图、协作图、活动图。
理解:
静态图
静态图主要用于展示系统的静态结构,即系统的组成部分以及它们之间的关系,而不涉及这些部分的行为或动作。
① 用例图(Use Case Diagram)
用例图是用来描述系统功能的图表,它从用户的角度展示了系统能够做什么。它主要包括参与者(用户或外部系统)和用例(系统功能)。参与者通过交互来触发这些用例,用例则展示了系统如何响应这些交互。
例子:一个在淘宝购物平台的用例图可能包括“顾客”作为参与者,以及“浏览商品”、“加入购物车”、“结算”等作为用例。
② 类图(Class Diagram)
类图是用于描述系统中类的静态结构,包括类的属性(即数据)和操作(即方法或行为)。类图还展示了类之间的关系,如继承、关联、依赖等。
例子:在在淘宝购物平台中,类图可能包括“商品”、“购物车”、“用户”等类,以及它们之间的关系,如用户可以将商品添加到购物车中。
③ 对象图(Object Diagram)
对象图是类图的一个实例,它展示了在特定时间点或场景下,系统中实际存在的对象以及它们之间的关系。对象图通常用于说明系统的一个具体状态。
例子:在淘宝购物平台中,一个对象图可能展示了某个用户(对象)的购物车(对象)中包含了哪些商品(对象)。
④ 组/构件图(Component Diagram)
构件图用于描述系统的物理结构,即系统由哪些构件(如源代码文件、可执行文件、数据库等)组成,以及这些构件之间的关系。
例子:淘宝购物平台的构件图可能包括前端网页、后端服务器、数据库等构件,以及它们之间的通信关系。
⑤ 部署图(Deployment Diagram)
部署图展示了系统运行时软件和硬件的物理配置情况,包括节点(如服务器、计算机)和它们之间的通信关系。
例子:淘宝购物平台的部署图可能展示了哪些服务器负责处理前端请求,哪些服务器负责数据存储,以及它们之间的网络连接情况。
动态图
动态图则用于描述系统的动态行为,即系统的组成部分如何随时间进行交互和变化。
① 序列图(Sequence Diagram)
序列图展示了对象之间交互的顺序,它按照时间顺序描述了对象之间发送和接收消息的过程。
例子:在淘宝购物平台中,序列图可能展示了用户登录时,前端界面、后端服务和数据库之间的交互过程。
② 状态图(State Diagram)
状态图用于描述一个对象在其生命周期中的状态变化以及触发这些变化的事件。它展示了对象在不同状态下的行为和状态之间的转换。
例子:在淘宝购物平台中,订单的状态图可能包括“待支付”、“已支付”、“已发货”等状态,以及触发这些状态变化的事件(如用户支付、仓库发货等)。
③ 协作图(Collaboration Diagram)
协作图与序列图类似,也用于描述对象之间的交互。但协作图更侧重于展示对象之间的空间布局和关系,而不是时间顺序。
例子:在淘宝购物平台中,协作图可能展示了在订单处理过程中,订单处理系统、支付系统和物流系统之间的协作关系。
④ 活动图(Activity Diagram)
活动图用于描述系统中从一个活动到另一个活动的流程,它展示了为了完成某个目标而需要执行的一系列动作和决策点。
例子:在淘宝购物平台中,活动图可能展示了从用户选择商品到完成支付的整个流程,包括浏览商品、加入购物车、结算、支付等活动。
(3)视图描述
关注公众号
添加微信好友
暂无评论内容