梳理你的思路(从OOP到架构设计)_架构设计的UML图形思考03

ops/2024/12/15 20:12:11/

目录

1、绘制UML基於类别图 :表达接口(Interface)

接口的表达

 Astah操作

接口实现

类 <实现>接口的表达

接口的使用(调用接口的函数)

2、接口的表示

在C++裡,

在Java里


1、绘制UML基於类别图 :表达接口(Interface)

接口的表达

对于架构师而言,「接口」 ( Interface)的角色比「类别」 (Class)来得重要多了。

例如, 对照到大家所熟悉的代码:
 

public class myActivity extends Activityimplements OnClickListener {// ……….// ……….
}

 Astah操作

接口实现

1)将接口图素呈现类别图上。例如,选取<Interface>图素,如下:

2)点选了这个<Interface>图素,接着将鼠标移动到类别图里的任何位置,并按键,出现如下:

3)就可以填入接口的名称了,例如:

 4)接口的注释(Note),可选取<Note>图素,如下:

5)接着,可选取<NoteAnchor>图素,如下:

类 <实现>接口的表达

对照到大家所熟悉的代码:
 

public class myActivity extends Activityimplements OnClickListener {// ……….// ……….}

6)接着,可以在图形上表达类别与接口之间的关系。例如,选取<Association>图素,如下:
 

7)先点选这个图素, 從myActivity拉出一條現到OnClickListener接口,出现:

8)此关系说明了: myActivity类别「实现」了OnClickListener接口。其意味着,myActivity类别里含有一个实现函数:onClick()函数,如下图

接口的使用(调用接口的函数)

9)myActivity实现了onClickListener接口之后,其它类别就能透过此接口来调用myActivity里的onClick()函数,

范例 (Android)
 

// myActivity.java
public class myActivity extends Activity {@Override public void onCreate(Bundle icicle) {super.onCreate(icicle);setContentView(R.layout.main);Button btn = new Button(this);btn.setText("OK");btn.setBackgroundResource(R.drawable.heart);btn.setOnClickListener(this);setContentView(button);
}

10)接着,可选取<Association>图素,如下:

11)这表达出:当人们按下屏幕画面上的按钮时, Android框架(及其幕后的系统服务)会透过OnClickListener接口而调用了myActivity类别里的onClick()函数。

2、接口的表示

  • 在OOP里,将接口定义为一种特殊的类别(Class) 。
  • 如果一个类别的某些函数是抽象函数的话,就称为「抽象函数」 (Abstract Class)。如果一个抽象类别,它的所有的函数全部都是抽象函数的话,就称为「纯粹抽象类别」 (Pure Abstract Class);这种类别又称为「接口」 (Interface)

在C++裡,

     類別包括3種:

        1. 一般(具象)類別
                -- 所有函數都是具象(內有指令)
        2. 抽象(abstract)類別
                -- 有一個或多個函數是抽象的(內無指令)
        3. 純粹抽象(pure abstract)類別
                -- 所有函數都是抽象的

在Java里

        在Java里,将上述的「 纯粹抽象类别」称为接口(Interface)
        在UML里,以圆圈( )来表示接口。


http://www.ppmy.cn/ops/142193.html

相关文章

webrtc学习----前端推流拉流,局域网socket版,一对多

提示&#xff1a;局域网socket版&#xff0c;一对多 文章目录 [TOC](文章目录) 前言一、教程二、webrtc工作流程三、推流端四、拉流五、socket服务六、效果七、备注总结 前言 ‌‌‌‌‌WebRTC&#xff08;Web Real-Time Communication&#xff09;‌是一种实时通讯技术&#x…

“AI数据生成系统:创造数据新动力

嘿&#xff0c;大家好&#xff01;今天咱们来聊聊一个特别火的话题——AI数据生成系统。这玩意儿&#xff0c;听起来可能有点技术范儿&#xff0c;但其实它就像是我们的创意工厂&#xff0c;能源源不断地产出新鲜、有用的数据。 首先&#xff0c;咱们得搞清楚&#xff0c;AI数据…

AI Alignment: A Comprehensive Survey---摘要、简介

题目 人工智能对齐&#xff1a;全面调查 摘要 人工智能对齐旨在使人工智能系统的行为符合人类的意图和价值观。随着人工智能系统的能力不断增强&#xff0c;错位的风险也在不断增加。为了提供对齐领域的全面和最新概述&#xff0c;在本调查中&#xff0c;我们深入研究了对齐的…

Linux系统操作03|chmod、vim

上文&#xff1a; Linux系统操作02|基本命令-CSDN博客 目录 六、chmod&#xff1a;给文件设置权限 1、字母法 2、数字法&#xff08;用的最多&#xff09; 七、vim&#xff1a;代码编写和文本编辑 1、启动和退出 1️⃣启动 2️⃣退出 2、vim基本操作 六、chmod&#x…

前端 websocket

一、定义和基本概念 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。它使得客户端和服务器之间可以进行实时的、双向的数据传输。与传统的 HTTP 请求-响应模式不同&#xff0c;WebSocket 允许服务器主动向客户端推送数据&#xff0c;而不需要客户端先发起请求。这为…

【JavaWeb后端学习笔记】Redis常用命令以及Java客户端操作Redis

redis 1、redis安装与启动服务2、redis数据类型3、redis常用命令3.1 字符串String3.2 哈希Hash3.3 列表List3.4 集合Set&#xff08;无序&#xff09;3.5 有序集合zset3.6 通用命令 4、使用Java操作Redis4.1 环境准备4.2 Java操作字符串String4.3 Java操作哈希Hash4.4 Java操作…

【Linux】Ubuntu:安装系统后配置

hostname&#xff1a;更改主机名 打开终端。 使用hostnamectl命令更改主机名。 sudo hostnamectl set-hostname 新的主机名你可以使用hostnamectl 命令来验证更改是否成功&#xff1a; hostnamectlChrome&#xff1a;更换默认浏览器 以下是从 Ubuntu 中移除预装的 Snap 版 Fi…

使用BMFont创建适用于Unity的艺术字

最近经常使用艺术字&#xff0c;虽然之前的工作经验我知道只需要修什么哪些就可以弄好艺术字的创建和间隔&#xff0c;所以打算做个总结&#xff0c;接下来分为以下几步&#xff08;其中会有补充&#xff0c;最后会有如何解决unity艺术字的字距问题&#xff09; 第1步 下载BMF…