软件设计模式与体系结构(入门基础知识)

本文详细解读了UML中的关联关系、聚合关系、组合关系、依赖关系以及泛化关系,并介绍了类与接口的实现关系。同时概述了八大设计原则,帮助理解面向对象软件设计的基石。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
https://blog.youkuaiyun.com/weixin_39786706/article/details/114889384
友情链接进行补充 转载一波

一.四大关系

1.关联关系( Association)是类与类之间最常用的

1.它是一种结构化关系,用于表示一类对象与另一类对象之间有联系
2.在UML类图中,用实线连接有关联的对象所对应的类
3.使用Java、C++等OOP编程语言实现关联关系时,通常将个类的对象作为另一个类的属性
在使用类图表示关联关系时可以在关联线上标注角色名
在这里插入图片描述
因为到时候用户去购买产品的方法,所以当用户去调用购买票的方法的时候,正好是用户买票者个逻辑,所以将Product产品放在Customer类里面。也就是puchases这个逻辑
User user=new User();
user.purchase(product);
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2聚合关系(属于关联关系)

1.聚合关系表示一个整体与部分的关系.通常在定义一个整体类后,再去分析这个整体类的组成结构,从而找出一些成员类,该整体类和成员类之间就形成了聚合关系
2.在聚合关系中,成员类是整体类的一部分,即成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独存在。在UML中,聚合关系用带空心菱形的直线表示
在这里插入图片描述

1.3组合关系

1.组合关系 Composition)也表示类之间整体和部分的关系,是组合关系中部分和整体具有统一的生存期,一旦整体对象不存在,部分对象也将不存在,部分对象与整体对象之间具有同生共死的关系。
2.在组合关系中,成员类是整体类的一部分,而且整体类以控制成员类的生命周期,即成员类的存在依赖于整体类。在UML中,组合关系用带实心菱形的直线表示
在这里插入图片描述

2.依赖关系

1.依赖关系( Dependency是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。 还有一种情况是在当前类创建其他类的对象,该类为依赖的一方,另外一个类为被依赖方
2.在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。
在这里插入图片描述

3.泛化关系

1.泛化关系( Generalization)也就是继承关系,也称为"is a kind-of”关系,泛化关系用于描述父类与子类之间的关系,父类又称作基类或超类。子类又称作派生类.在UML中,泛化关系用带空心三角形的直线来表示
2.在代码实现时使用面向对象的继承机制来实现泛化关系如在]ava语言中使用 extends关键字、在C十十/C#中使用冒":”来实现。
在这里插入图片描述

4.类与接口的实现关系

接口之间也可以有与类之间关系类似的继承关系和依赖关系,但是接口和类之间还存在一种实现关系这种关系,类实现了接口,类中的操作实现了接口中所声明的操作。在∪ML中,类与接口之间的实现关系用带空心三角形的虚线來表示
在这里插入图片描述

二.八大设计原则整体概述

在这里插入图片描述
在这里插入图片描述

上篇:软件设计模式例子代码  【例2.2】简单工厂方法模式-汽车保险  【例2.3】工厂方法模式-汽车保险  【例2.4】抽象工厂模式-房屋信息  【例2.5】生成器模式-房屋信息  【例2.6】单例模式-互联网连接  【例3.2】组合模式-五子棋代码  【例3.3】组合模式-空军指挥系统  【例3.4】组合模式-世界问候语  【例3.7】类适配器模式-客户信息验证  【例3.8】对象适配器模式-字符串排序  【例3.10】外观模式-安全系统  【例3.11】外观模式-椭圆功能  【例3.13】桥接模式-茶水机系统  【例3.14】桥接模式-几何立体体积  【例4.1】迭代器模式-矩阵搜索  【例4.2】迭代器模式-产品搜索  【例4.4】访问者模式-名牌鞋销售软件  【例4.5】访问者模式-计算机部件销售软件  【例4.6】命令模式-室内温度控制  【例4.7】命令模式-室内温度控制-2个GUI  【例4.8】命令模式-室内温度控制-3个GUI  【例4.10】中介者模式-旅游信息共享  【例4.11】中介者模式-海岛机场  【例4.13】策略模式-整数排序  【例4.14】策略模式-中国属相  【例4.16】状态模式-交通信号灯-设计1  【例4.16】状态模式-交通灯信号灯-设计2  【例4.16】状态模式-交通灯信号灯-设计3 下篇:软件体系结构例子代码  【例6.4】结构化设计-文件更新-C源代码  【例6.5】面向对象设计架构-文件更新  【例6.7】顺序批处理架构-文件更新  【例6.8】顺序批处理架构-图像处理  【例6.9】管道过滤器架构-主动过滤器  【例6.10】管道过滤器架构-被动过滤器  【例6.11】管道-过滤器架构-文件更新  【例6.12】管道-过滤器架构-图像处理程  【例6.14】事件体系结构-鼠标响应  【例6.17】事件体系结构-观察者模式-大草原1  【例6.18】事件体系结构-观察者模式-大草原2  【例6.19】事件体系结构-观察者模式-温度显示  【例6.21】层次架构-软件测试  【例6.22】层次架构-银行- Access数据库  【例6.23】MVC架构-二手车拍卖-无观察者  【例6.24】MVC架构-二手车拍卖-观察者-3个图形界面  【例6.25】MVC架构-二手车拍卖-观察者-1个图形界面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值