C# & Unity 面向对象补全计划 之 画UML类图(持续更新)

本文仅作学习笔记与交流,不作任何商业用途,作者能力有限,如有不足还请斧正

本系列旨在通过补全学习之后,给出任意类图都能实现并做到逻辑上严丝合缝

学会这套规则,并看完面向对象补全计划文章之后,可以尝试实现任意逻辑的类图了

前置文章:

C# & Unity 面向对象补全计划 之 访问修饰符-CSDN博客

C# & Unity 面向对象补全计划 之 类class-CSDN博客

C# & Unity 面向对象补全计划 之 继承(字段与属性)-CSDN博客

C# & Unity 面向对象补全计划 之 初识继承方法与多态-CSDN博客

C# & Unity 面向对象补全计划 之 接口-CSDN博客

1.类图的规则

我使用的类图软件:

类图规则介绍:

UML访问修饰符

UML属性(对应c#的字段与属性两部分)

举例:

UML方法的参数和返回值

举例:

2.举栗子

2.1类

比如我有一个Computer类,有一系列常见的属性与方法,我就可以画出类图

2.2继承

众所周知,电脑按照形态分为很多种,比如:

Desktop Computer,Laptop/Notebook,All-in-One PC

那么就可以画出子类对父类的继承(只举一个栗子):

代码实现:

cs 复制代码
public class Computer
{
    protected string cpu;
    protected string gpu;
    protected int rom;
    protected int storage;

    protected void UpdateOS()
    {
        // 更新操作系统逻辑
    }

    protected void CheckHardwareStatus()
    {
        // 检查硬件状态逻辑
    }

    protected void InstallSoftware(string software)
    {
        // 安装软件逻辑
    }

    protected void UninstallSoftware(string software)
    {
        // 卸载软件逻辑
    }

    protected void ConnectToNetwork()
    {
        // 连接网络逻辑
    }
}

public class DesktopComputer : Computer
{
    private string CaseType;
    private int MonitorSize;

    private void ReplaceHardware()
    {
        // 更换硬件逻辑
    }

    private void AdjustMonitorSettings()
    {
        // 调整显示器设置逻辑
    }
}

2.3 接口

相关推荐
水云桐程序员2 小时前
从零开发软件的步骤,软件开发从零到完成应该怎么做?
笔记·学习·软件构建·个人开发
David猪大卫2 小时前
【Linux修炼】环境变量、进程地址空间
linux·c语言·经验分享·笔记·学习·ubuntu·centos
叼烟扛炮3 小时前
Linux 学习笔记(五十六):IO 多路复用初探——select 的“三宗罪”
linux·服务器·数据库·笔记·学习·php
xiaoye-duck4 小时前
《C++ 项目:手写大模型接入 SDK》Gemini接口设计(上):初始化、全量响应实现和测试
开发语言·网络·c++·语言模型
nice_lcj5206 小时前
Java Lambda 表达式入门:怎么写、怎么用、常用方法有哪些
java·开发语言·后端·面试
码农小河667 小时前
基于SSM+JSP+MySQL的在线医疗服务系统的设计与实现
java·开发语言·mysql
叼烟扛炮9 小时前
Linux 学习笔记(五十八):IO 多路复用封神——epoll 底层原理揭秘
linux·运维·服务器·网络·笔记·学习·php
nice_lcj52011 小时前
ThreadLocal 入门:它是怎么隔离数据的、为什么会导致内存泄漏
java·开发语言·后端·面试·并发编程·内存泄漏·threadlocal
紧跟先前的步伐11 小时前
Go AI Agent 实战 28|Agent 的预算、超时与停止条件
开发语言·人工智能·后端·ai·golang
bksczm12 小时前
InnoDB 行格式详解:DYNAMIC / COMPACT / COMPRESSED / REDUNDANT
java·开发语言·数据库