类图 – 类的高级概念:让类更“聪明”的技巧 🧠

291次阅读

一、抽象类:“只定规则,不干活”的类 📜

关键字:抽象类、抽象操作、不可实例化

🤔

抽象类是 不能直接创建对象的类 ,它的作用是“定义公共规则”——里面可以有普通属性 / 操作,也可以有 抽象操作(只有方法名,没有实现代码),这些抽象操作必须由子类来实现。

比如“图形类(Shape)”是抽象类,它定义了“draw()”这个抽象操作;“圆形(Circle)”“矩形(Rectangle)”作为子类,各自实现自己的 draw 逻辑(画圆、画矩形)。

📊 UML 表示:

抽象类 / 抽象操作的名字用 斜体 表示,比如“Shape”类名是斜体,“draw()”操作名也是斜体。

二、模板类:“一版多用”的泛型类 🧩

关键字:模板类、参数化元素、泛型

🚀

模板类就是“泛型类”——它的属性、操作可以支持“任意类型”,通过“参数”来指定具体类型,实现“一套代码适配多种数据类型”。

💡 新手类比:

就像“万能收纳盒”——盒子(模板类)本身不指定装什么,用的时候可以说“这个盒子装书(String 类型)”“那个盒子装笔(Integer 类型)”,灵活适配不同物品。

📊 UML 表示:

用“<<parameterized element>>”构造型 +“参数占位符”表示,比如“Array<T>”(T 是参数,代表任意类型)。实例化时,把 T 替换成具体类型,比如“Array<String>”(装字符串的数组)。

🌰 课本例子:

“Array”模板类有“size:int”属性,实例化出“IArray(Integer 类型)”“FloatArray(Float 类型)”等,各自对应不同的数据类型。

三、关联类:给关联“加属性”的特殊类 📝

关键字:关联类、关联的属性

🤝

普通关联只能表示类之间的“连接”,但如果需要给 关联本身加属性(比如“员工在公司的入职时间”),就要用关联类——它是“关联 + 类”的结合,既表示关系,又有自己的属性 / 操作。

📊 UML 表示:

用“虚线 + 类”连接到关联路径上,比如“Company”和“Person”的关联,用“Employment”关联类表示,关联类里可以加“startDate:Date”(入职时间)这样的属性。

四、分析类:需求到设计的“过渡类”🚧

关键字:分析类、实体类、边界类、控制类

🔄

分析类是 从“需求”到“设计”的过渡工具,用来把用例中的业务逻辑转化为类结构,分为三种:

实体类(Entity Class):对应现实中的“事物”,负责存储数据,比如“学生(Student)”“订单(Order)”;
边界类(Boundary Class):负责“系统和外部的交互”,比如界面、接口,比如“登录界面(LoginUI)”;
控制类(Control Class):负责“业务逻辑的流程控制”,比如“订单处理(OrderProcess)”,协调实体类和边界类的交互。

💡 作用:

用分析类可以快速把“用例描述”转化为类结构,比如“提交订单”用例,对应“Order(实体类)”“OrderUI(边界类)”“OrderControl(控制类)”。

总结:高级概念让类图更“灵活强大”🛠️

🎉

抽象类、模板类这些高级概念,是为了让类图能表达更复杂的业务逻辑——抽象类统一规则,模板类复用代码,分析类衔接需求和设计,让系统的类结构更合理、更易扩展~

要不要我帮你整理一份 类的高级概念对照表,方便你区分抽象类、模板类和分析类?

正文完
 0