设计模式中类的关系

华为星闪SLE实战:手把手教你用HarmonyOS开发智能家居控制应用(附完整代码) 本文详细介绍了如何利用华为星闪SLE技术,结合HarmonyOS开发智能家居控制应用。通过对比传统无线技术,阐述了星闪SLE在低时延、高可靠性和高并发方面的优势,并提供了从环境搭建、设备发现、连接管理到核心控制代码的完整实战教程,帮助开发者快速上手这一无线短距通信技术。 阅读详情


在 Java 以及其他的面向对象设计模式中,类与类之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。他们的耦合度依次增强。

1. 依赖(Dependence)

依赖关系的定义为:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。定义比较晦涩难懂,但在java中的表现还是比较直观的:类A当中使用了类B,其中类B是作为类A的方法参数、方法中的局部变量、或者静态方法调用。类上面的图例中:People类依赖于Book类和Food类,Book类和Food类是作为类中方法的参数形式出现在People类中的。

在这里插入图片描述
代码样例:

public class People
{
    //Book作为read方法的形参
     public void read(Book book){
        System.out.println(“读的书是”+book.getName());
    }
}

2.关联(Association)

单向关联:
在这里插入图片描述
双向关联:
在这里插入图片描述

对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。关联关系分为单向关联和双向关联。在java中,单向关联表现为:类A当中使用了类B,其中类B是作为类A的成员变量。双向关联表现为:类A当中使用了类B作为成员变量;同时类B中也使用了类A作为成员变量。

代码样例:

public class Son{
   //关联关系中作为成员变量的类一般会在类中赋值
    Father father = new Father();
    public void getGift(){
        System.out.println(“从”+father.getName()+”获得礼物”);
    }
}
 
public class Father{
    Son son = new Son();
    public void giveGift(){
        System.out.println(“送给”+son.getName()+“礼物”);
    }
}

3.聚合(Aggregation)

聚合关系是关联关系的一种,耦合度强于关联,他们的代码表现是相同的,仅仅是在语义上有所区别:关联关系的对象间是相互独立的,而聚合关系的对象之间存在着包容关系,他们之间是“整体-个体”的相互关系。

在这里插入图片描述
代码样例:

public class People{
    Car car;
    House house; 
    //聚合关系中作为成员变量的类一般使用set方法赋值
     public void setCar(Car car){
        This.car = car;
    }
    public void setHouse(House house){
        This.house = house;
    }
 
    public void driver(){
        System.out.println(“车的型号:”+car.getType());
    }
    public void sleep(){
        System.out.println(“我在房子里睡觉:”+house.getAddress());
    }
}

4.组合(Composition)

相比于聚合,组合是一种耦合度更强的关联关系。存在组合关系的类表示“整体-部分”的关联关系,“整体”负责“部分”的生命周期,他们之间是共生共死的;并且“部分”单独存在时没有任何意义。在下图的例子中,People与Soul、Body之间是组合关系,当人的生命周期开始时,必须同时有灵魂和肉体;当人的生命周期结束时,灵魂肉体随之消亡;无论是灵魂还是肉体,都不能单独存在,他们必须作为人的组成部分存在。

在这里插入图片描述
** 代码样例:**

public class People{
    Soul soul;
    Body body; 
    //组合关系中的成员变量一般会在构造方法中赋值
     Public People(Soul soul, Body body){ 
        This.soul = soul;
        This.body = body;
    }
 
    Public void study(){
        System.out.println(“学习要用灵魂”+soul.getName());
    }
    Public void eat(){
        System.out.println(“吃饭用身体:”+body.getName());
    }
}

5.继承(Generalization)

继承表示类与类(或者接口与接口)之间的父子关系。在java中,用关键字extends表示继承关系。UML图例中,继承关系用实线+空心箭头表示,箭头指向父类。

在这里插入图片描述

6.实现(Implementation)

表示一个类实现一个或多个接口的方法。接口定义好操作的集合,由实现类去完成接口的具体操作。在java中使用implements表示。UML图例中,实现关系用虚线+空心箭头表示,箭头指向接口。

在java中继承使用extends关键字,实现使用implements关键字,很直观。就不代码演示了。

在这里插入图片描述

NSIS教程(6): 使用第三方插件 NSIS内置了很多指令,这些指令可以满足我们基本需求,但难免会遇到NSIS没有内置的功能,如进程操作,后台运行(即多线程),7z压缩等等,这个时候我们就需要借助第三方插件来满足我们所需要的功能了。 一、插件获取 NSIS官方收录插件的网址是:http://nsis.sourceforge.net/Category:Plugins,我们可以在这个网站上查找和下载我们需要的插件,该网站上针对每 阅读详情

相关推荐

多仓智能订单路由与动态优化方案设计

现在有很多商家会有多个仓库,并分布在不同的城市中,当用户下单后会根据商品库存及订单信息将订单分配到对应的仓库进行发货,如就近原则,本期基于多仓库设计一套订单路由方案,包含核心逻辑、规则优先级和实施方案,适用于多仓协同的订单自动分配场景

14年产品经理老兵,想把自己的经验及总结分享给大家,只讲思路及实操,不讲废话 2477

java面向对象设计模式_详解java中面向对象设计模式类与类的关系

前言在java以及其他的面向对象设计模式中,类与类之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。他们的耦合度依次增强。1.依赖(Dependence)依赖关系的定义为:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。定义比较晦涩难懂,但在java中的表现还是比较直观的:类A当中使用了类B,其中类B是作...

weixin_29826879的博客 441

解决uc浏览器劫持video标签问题

解决uc视频悬浮播放 ,video标签被浏览器劫持 ,vide0适配

smile_y_y的博客 3449

面向对象语言中类与类之间的关系

面向对象语言中类与类之间关系共计六种,分别是继承、实现、关联、依赖、组合、聚合。1、继承:实现代码的复用。面向对象三大特征之一。如动物类与鸟类。2、实现:一个类实现接口功能。如鸟类实现“移动”这一功能。3、关联:两个类之间是一般是平等的,且两个类并不是从属关系,比如猫类和狗类。4、依赖:一个类的某种行为(函数)依赖于另外一个类。如大雁的迁徙依赖于季节。大雁类与季节类就是依赖关系。经常的实现方法为:...

Summer的博客 2635

Windows下Python多版本共存与切换的终极指南(含环境变量详解)

本文详细解析了在Windows系统下实现Python多版本共存与切换的完整方案。通过深入讲解环境变量Path的底层机制,提供了从安装策略、精细化Path管理到创建快速切换脚本的实战指南,并介绍了py启动器和虚拟环境等高级技巧,帮助开发者彻底解决版本冲突问题,提升开发效率。

v6b7n8m9q0的博客 536

宇树GO2-YOLOv5在Jetson Orin上的部署避坑实践

本文详细记录了在宇树GO2四足机器人搭载的Jetson Orin平台上部署YOLOv5目标检测模型的完整实践过程。文章重点分享了从ARM架构认知、网络连接解决方案、Archiconda环境搭建、PyTorch版本精准匹配到依赖安装与性能验证的核心步骤与避坑指南,旨在帮助开发者高效完成边缘计算环境下的算法部署。

app77的博客 669

面向对象类和类之间的几种关系

一、继承关系 继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。在Java中继承关系通过关键字extends明确标识,在设计时一般没有争议性。在UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父类,或者子接口指向父接口。 二、实现关系 实现指的是一个class类实现interface接口(可以是...

IT狂人 3982

【立创EDA-PCB设计基础】1.嘉立创EDA专业版软件安装+PCB基本概念+原理图绘制

本文详解PCB基本概念以及实现MCU最小系统原理图的绘制(原理图包括MCU芯片GD32F103C8T6、外部晶振、输出端口、USB输入口、5v转3v3稳压输出、复位按键、唤醒按键、LED)及嘉立创EDA专业版软件安装。为本专栏【立创EDA-PCB设计基础】后面章节实现PCB绘制做准备。

嵌入式阿齐Archie 3万+

类与类之间关系的表示方式

类与类之间关系的表示方式 关联关系 关联关系是对象之间的一种引用关系, 用于表示一类对象与另一类对象之间的联系,如老师和学生、师傅和徒弟、丈夫和妻子等。 关联关系是类与类之间最常用的一种关系,分为一般关联关系、聚合关系和组合关系。 我们先介绍一般关联。 关联又可以分为单向关联,双向关联,自关联。 1,单向关联 在UML类图中单向关联用一个带箭头的实线表示。 上图表示每个顾客都有一个地址,这通过让Customer类持有一个类型为Address的成员变量类实现。 2,双向关联 ..

qq_39368007的博客 779

AI智算-K8s如何利用IB RDMA网络加速大模型分布式训练

在AI人工智能领域,大模型的微调是提升性能不可或缺的一环。通过结合InfiniBand RDMA网络的高速互联、Kubernetes的云原生容器化部署,以及智能算力调度平台,可以打造一个高效、灵活且可扩展的分布式训练环境。

Kason_iWiki 815

Python数据分析全流程指南:从数据采集到可视化呈现的实战解析

在数字化转型浪潮中,数据分析已成为企业决策的核心驱动力。Python凭借其丰富的生态库和简洁的语法,成为数据分析师的首选工具。本文将以实战案例为脉络,拆解数据分析全流程的关键环节,通过具体代码和场景说明如何用Python完成从数据采集到可视化呈现的完整链路。

这家伙很懒,什么都没有留下 1680

Java学习分享---类与类之间的关系

横向关系: 1.依赖关系:一个对象执行某个方法时需要其他对象参与。 2.关联关系:比如类与类或者类与接口之间的关系。 3.组合关系:比如一个超市有很多商品,它们之间就是组合关系。 4.聚合关系:强制不可分割,比如人和大脑。 纵向关系: 1.继承关系(子类与父类) 2.实现关系(类与接口) 一.继承关系(extends) 对于编程过程中可以将一些类中的相同的属性或者...

weixin_59593142的博客 679

帝企鹅优化器(EPO)详解:从基础原理到代码实战

帝企鹅优化器(EPO)是受帝企鹅群体在极寒环境中抱团取暖行为启发,于2018年提出的一种群体智能优化算法。其核心机制是模拟帝企鹅种群通过动态调整位置来维持体温的过程,主要包括确定集群边界、计算温度分布、衡量个体间距离以及更新位置四个步骤,从而在求解复杂优化问题时有效平衡全局探索与局部开发。该算法具有参数少、结构清晰、易于实现等优点,在工程优化、图像处理、机器学习特征选择以及冷链物流车辆路径规划等领域展现出良好的应用潜力。

qq_42212808的博客 139

设计模式中类与类之间的关系

在设计模式中类与类之间的关系主要有6种:依赖、关联、聚合、组合、继承、实现,它们之间的耦合度依次增加。一、继承关系      继承是一种“is-a”关系。继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。在Java中继承关系通过关键字extends明确标识,在设计时一般没有争议性。在UML类图设计中,继承用一条带空心三角箭头的实线表示,...

ZytheMoon的博客 1517

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【设计模式】UML类图及Java的类之间的关系

UML类图展示 设计模式中的对象关系 关联和依赖的对比 依赖关系  虚线箭头 依赖是a类成员方法中有b类的属性,动物新陈代谢方法中有水和空气的属性,只有调这个方法的时候,才可能临时用一下 关联关系  实线 类与类的连接,(它使一个类知道另一个类的属性和方法,关联关系一般用成员变量实现) 关联是a类中存在b类对象,企鹅类中有气候类的属性 组合和聚合的对比 组合关系  实心菱形 组合有相同的生命...

Hello World 1262

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

设计模式-UML类图和类之间的关系

1.设计模式是什么 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的代码设计经验的总结,使用设计模式是为了可以重用代码,让代码可以更容易被他人理解并且提高代码的可靠性。 2.UML 2.1 UML特性 UML融合了多种优秀的面向对象建模方法以及多种得到认可的软件工程方法; UML是一种可视化建模语言,它通过一些便准的图形符号和文字对系统进行建模,用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档。 UML是一种语言,它有属于自己的标准表达规则。 2.2 UML结构 视图(View)

Onecat_j的博客 629

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

C++设计模式:类间关系

类之间的关系强弱顺序是这样的:继承(含接口实现) > 组合 > 聚合 > 关联 > 依赖。在实际设计中,应优先使用低耦合关系(如关联、聚合、组合),避免过度依赖继承,以提高代码的灵活性和可维护性。

ikkkkkkkl的博客 431

java uml图中的关系_【设计模式】UML类图及Java的类之间的关系

UML类图展示 设计模式中的对象关系关联和依赖的对比依赖关系  虚线箭头依赖是a类成员方法中有b类的属性,动物新陈代谢方法中有水和空气的属性,只有调这个方法的时候,才可能临时用一下关联关系  实线 类与类的连接,(它使一个类知道另一个类的属性和方法,关联关系一般用成员变量实现)关联是a类中存在b类对象,企鹅类中有气候类的属性组合和聚合的对比组合关系  实心菱形组合有相同的生命周期,鸟有翅膀,鸟死了...

weixin_35752233的博客 207

寂然解读设计模式 - UML类图及类的六大关系

I walk very slowly, but I never walk backwards UML类图&类的六大关系 ​ 寂然 大家好~,我是寂然

weixin_44808014的博客 428

Java开发之设计模式中类的关系

设计模式第5篇--设计模式中类的关系

ZaneLove's blog 831

C++ 类的关系 vs C++设计模式

摘要: C++类的关系(如继承、组合、依赖)是设计模式的“基础积木”,而设计模式(如策略、工厂、单例)是对这些关系的“有目的、可复用的组合”,用于解决特定问题。类的关系是语法层面的静态连接(如class A: public B表示继承),设计模式则是动态解决方案(如策略模式通过“接口+组合”实现算法切换)。核心区别在于:类的关系描述“如何连接”,设计模式描述“如何用连接解决问题”。设计模式偏好低耦合关系(如优先组合而非继承),并依赖抽象接口实现解耦。两者是递进关系——类的关系是“零件”,设计模式是“用零件组

I Promise的博客 695

类图 关联关系 限定词 java实现_【设计模式】UML类图及Java的类之间的关系

UML类图展示设计模式中的对象关系关联和依赖的对比依赖关系  虚线箭头依赖是a类成员方法中有b类的属性,动物新陈代谢方法中有水和空气的属性,只有调这个方法的时候,才可能临时用一下关联关系  实线 类与类的连接,(它使一个类知道另一个类的属性和方法,关联关系一般用成员变量实现)关联是a类中存在b类对象,企鹅类中有气候类的属性组合和聚合的对比组合关系  实心菱形组合有相同的生命周期,鸟有翅膀,鸟死了,...

weixin_33914777的博客 352
上一篇: ArrayAccess(数组式访问对象)
下一篇: 常用的设计模式
Webben
博客等级 码龄10年 19粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值