设计模式学习笔记1——类与类之间的关系

设计模式学习笔记1——类与类之间的关系,第1张

本文约束条件
本文以单继承的角度进行分析,多继承要转化为单继承(多继承中定一个为基类,其他类为接口类等)。


1.继承关系
概念
继承又分为2种方式,一种实现继承一种接口继承。


参见笔记——2种继承方式学习笔记
OOPL(面向对象语言)中有继承的各规范语法(由编译器/解释器负责管理),比如python用括号表示继承,“子类(父类):”。


再比如c++用冒号表示继承,“子类:父类{}”。



在OOPC(c语言面向对象)中怎么判定呢?如果调用其基类时会调用该类的同名函数,那么基类和该类是继承关系(通俗点就是说,子类里的基类方法会调用子类里的方法)。



关键词:is a
画图符号:实线+空心三角形(空心三角形指向父类)

2.接口关系
概念
接口关系只是继承接口,增加新能力。


比如超人会飞——超人继承人类,外加继承一个飞的接口类。


再比如唐老鸭会说话,唐老鸭继承鸭类,外加继承一个说话的接口类。



OOPL(面向对象语言)中有接口的各规范语法(由编译器/解释器负责管理),比如c++里有virtual关键字,java里有interface关键字等。



在OOPC(c语言面向对象)中怎么判定呢?只包含函数指针的类是接口类。



关键词:interface
画图符号:虚线+空心三角形(空心三角形指向接口类)——与继承的差异是一个实线一个虚线,因为一个是真继承,一个是假继承——主要是继承方法而已。


3.组合关系
概念
组合关系用来表示类与类之间是整体与部分的关系,是一个强的has a的关系。


比如人有一双眼睛、一只鼻子、两只耳朵、一个嘴巴,那么人与眼睛、鼻子、耳朵、嘴巴就是组合关系,一体的,一损俱损,一荣俱荣,就是生命周期一样,那些眼睛、鼻子、耳朵、嘴巴是人类构造函数负责创建的。



OOPL(面向对象语言)中没有语法约定,实现形式是:构造函数中,其他类创建的对象作为该类的属性等形式。



在OOPC(c语言面向对象)中怎么判定呢?类的属性是其他类创建的对象,且初始化时负责创建该类对象作为自己的属性。



关键词:强的has a
画图符号:实心菱角形+实线+大于号>剪头(实心表示强烈的“has”(拥有)的关系,剪头指向被has的类)

4.聚合关系
概念
聚合关系相对组合关系来说的,是一个弱的has关系,用来表示类与类之间是合作、聚集的关系。


比如是人群是由一个个人类的集合,雁群是一个个大雁的集合。



OOPL(面向对象语言)中没有语法约定,实现形式是:构造函数中,某类的属性是另外一类的数组。



在OOPC(c语言面向对象)中怎么判定呢?类的属性是其他类定义成的数组。



关键词:弱的has a
画图符号:空心菱角形+实线+大于号>剪头(空心表示很弱的“has”(拥有)的关系,剪头指向被has的类)

5.依赖关系
概念
依赖关系用来表示一个类依赖另一个类的关系。


比如动物依赖阳光、空气、水、食物等。



OOPL(面向对象语言)中没有语法约定,实现形式是一类对象作为另一类的形参,那么形参的类是为被依赖的类。



在OOPC(c语言面向对象)中怎么判定呢?也好定义呀,就是该类方法的形参传入的是其他类的对象,其他类就是该类依赖的类,它们是依赖关系。



关键词:依赖关系
画图符号:虚线+大于号>剪头(虚线表示依赖的关系,剪头指向所依赖的类)

6.关联关系
概念
关联关系用来表示一个类会关联到另一个类。


比如人类与地球,人类与气候,企鹅与温度。



OOPL(面向对象语言)中没有语法约定,实现形式是一类的属性引用到另一类,且有关联则是关联关系。



在OOPC(c语言面向对象)中怎么判定呢?属性是某类的对象,且关系是关联型的。



关键词:关联关系
画图符号:实线+大于号>剪头(实线表示关联关系,剪头指向所关联的类)

总结
组合关系、依赖关系和关联关系因为OOPL和OOPC没有对应语法约束,这些关系从实现形式上很难认出来,都可以是类的属性——那只能靠人自己去区分了。


你看类、继承、接口在OOPC中都有语法约束,比如class关键字、继承形式(括号或者冒号)、virtual关键字和interface关键字,编译器/解释器会从语言层面解决——是不是关键字由编译器/解释器来决定和维护的(开发编译器/解释器的人才是这个语言的上帝)。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://outofmemory.cn/langs/562287.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-04-01
下一篇2022-04-01

随机推荐

  • 拳皇志之麻宫雅典娜_拳皇15超必杀合集

    必杀技合集:《拳皇15》是由SNK开发的一款格斗游戏,是经典格斗游戏《拳皇》系列的第十五部正统续作,本作将采用虚幻4引擎进行打造,在画面上有明显的提升。本作预计将于2022年2月17日登陆PC、PS5、PS4、XSXS、XboxOne平

    2022-12-29
    1700
  • 獭兔毛能水洗吗 獭兔毛可以水洗吗

    导读:獭兔毛能水洗吗?下面为大家带来介绍。1、獭兔毛不可以水洗。獭兔毛皮草忌讳水、热、阳光。如果一不小心弄湿了,需要立刻将上面的水珠抖掉并放在阴凉处风干,如果1、獭兔毛不可以水洗。獭兔毛皮草忌讳水、热、阳光。如果一不小心弄湿了,需要立刻将上

  • 无叶风扇原理详解附图,无叶风扇出风原理

    无叶风扇的原理1880年,美国人舒乐第一次将叶片直接安装在电动机上,从而发明了世界上第一台电风扇,在此之后的一百多年里,电风扇的外观形态一直都保持着接近于刚被发明出来时的那种样子,没有得到明显的改变。在空调没有得到普及之前,电风扇一直都

    2022-12-29
    1900
  • 棉条放浅了怎么办

    棉条放浅了可以将其取出,重新换一个新的棉条,更换时要把握棉条放置的深浅,太浅容易引起不适感,太深容易出现取不出来的情况。月经是每个女人都要经历的事,它属于生理上的循环周期,为了不让经血沾染到衣物上,很多女性都会在经期使用卫生巾,卫生棉条和卫

    2022-12-29
    1700
  • 多少度没有蚊子

    秋天气候变冷温度降到10℃以下时,蚊子就会停止繁殖,大量死亡,一旦温度太低,蚊子的生活代谢也处于很低的状态,有极少的蚊子会存活,超过了35℃,人热得难受,蚊子也会夏蛰。蚊子的适宜生长的气温是25~30℃,超过了35℃,人热得难受,蚊子也会夏

  • 成都天府中学附小招生条件

    成都天府中学附小招生条件是新区户籍以及按政策享受新区户籍同等待遇的适龄儿童少年;新区企(事)业(含个体工商户)单位员工子女;新区机关(含事业单位)职工子女。成都石室天府中学是成都高新区管委会直属的一所公立寄宿制完全中学。成都石室天府中学占地

    2022-12-29
    1600
  • 雅居乐楼盘最高端系列_房地产中介黄金时代

    20世纪90年代,是中国房地产的黄金时代。迸发出强大生命力的楼市,将一些出身平凡的年轻人,推向了时代洪流之中。粤系房企的代表“华南五虎”:合生创展、恒大、雅居乐、富力、碧桂园,就在这个时代崛起,风头一时无两。谁也不曾料想,那些高光年代转

    2022-12-29
    1900
  • 适合送闺蜜杯子吗

    导读:1、闺蜜过生日是可以送水杯的,水杯的寓意是“一辈子”,送给闺蜜就代表,要和你做一辈子的好闺蜜、好朋友,送给闺蜜是很合适的礼物。2、杯子本身是用来盛水的,可以盛得满满当当1、闺蜜过生日是可以送水杯的,水杯的寓意是“一辈子”,送给闺蜜就代

    2022-12-29
    1400
  • 椰棕会不会生虫子 椰棕床垫会生虫吗

    导读:椰棕会不会生虫子?以下是小编为大家带来的介绍。1、椰棕床垫会生虫,就是因为人在睡觉的时候身上就会出汗。汗液与布料长期摩擦就会进入到液重里面。空气不能内循环,汗液不1、椰棕床垫会生虫,就是因为人在睡觉的时候身上就会出汗。汗液与布料长期摩

    2022-12-29
    1500

发表评论

登录后才能评论

评论列表(0条)

    保存