⭐设计模式UML详解:https://blog.csdn.net/qq_40274514/article/details/124047443
面向对象基础
面向对象的程序设计 和 面向对象设计区别
-
面向对象的程序设计涉及到具体的编程语言
-
面向对象设计只从系统逻辑结构设计解决方案
常见的机制
- 动态绑定:过程调用和响应调用所需要执行的代码在运行时加以结合
- 静态绑定:过程调用和响应调用所需要执行的代码在编译时加以结合
UML【下午重点】
UML是统一建模语言,和程序设计毫无关系!
UML基本构造块包含:事物、关系、图
事物(模型中最具有代表性的成分的抽象)
- **结构事物:**模型的静态部分,如类,接口(声明对象类所需要服务),用例,构建等;
- **行为事物:**模型的动态部分,如交互,活动,状态机;
- **分组事物:**模型的组织部分,如包;
- **注释事物:**模型的解释部分,简单符号;
关系(把事物结合到一起)
- **依赖:**假设A类的变化引起了B类的变化,则说名B类依赖于A类。【调用其他类的方法】
- 关联:分为聚合和组合,其中组合事物之间关系更强;两个类之间可以有多个由不同角色表示的关联
- 聚合:即属性是外部类
- 组合:即属性是内部类,同生共死
- **泛化:**一般/特殊关系,字类和父类之间的关系
- **实现:**一个类元指定了另一个类元保证执行的契约
图(聚集了相关的事物)
静态图
-
类图:
-
对象图:
-
用例图:
-
构件图:
-
**部署图:**系统静态部署图,表示软件组件和硬件之间的物理关系
动态图
-
序列图:
-
通信图:
-
状态图:
-
活动图:
实体类:主要负责数据和业务逻辑;
边界类:负责和用户进行交互,即用户界面;
控制类:负责实体类和界面类的交互;
设计模式
设计模式中的六大原则
- 单一原则:一个类只负责一个功能领域的相应职责,实现高内聚低耦合
- 开放-封闭原则:对增加进行开放,对修改则关闭
- 里氏替换LSP原则:
- 任何有**基类(父类)**出现的地方,子类一定可以出现
- 软件系统中把基类都替换成它的子类,程序的行为没有变化
- 依赖倒转原则:依赖于抽象,不依赖于实现
- 接口隔离原则:客户端不应该依赖于它不需要的接口
- 迪米特法则:合理引入一个第三者来降低现有对象之间的耦合度
解决方案的核心!
需要注意英文名称!!!
创建型设计模式
抽象工厂模式 和 工厂方法模式的区别
参考文献:
UML图:https://www.jianshu.com/p/6060e0632071
差异分析:https://www.cnblogs.com/my-blog-site/p/16293474.html
工厂方法模式、抽象工厂模式,傻傻分不清楚?
为了解释得更清楚,先介绍两个概念:
产品等级结构:比如一个抽象类是食物,其子类有苹果、牛奶等等,则抽象食物与具体食物名称之间构成了一个产品等级结构。食物是抽象的父类,而具体的食物名称是其子类。
产品族:在抽象工厂模式中,产品族是指由同一个工厂生产的,位于不同产品等级结构中的一组产品。如 AKitchen 生产的苹果、刀子,苹果属于食物产品等级结构中,而刀子则属于餐具产品等级结构中。而 BKitchen 可能生成另一组产品,如牛奶、杯子。
因此工厂方法模式、抽象工厂模式最大的区别在于:
工厂方法模式:针对的是 一个产品等级结构。
抽象工厂模式:针对 多个产品等级结构。
抽象模式比工厂模式高级!!
总结做题:
工厂方法模式:每个具体工厂类只能创建一个具体产品类的实例
抽象工厂模式:每个具体工厂类可以创建多个具体产品类实例
结构型设计模式
适配器模式和桥接模式的区别:
适配器模式:改变已有的两个接口,让他们相容。
桥接模式:分离抽象化和实现,使两者的接口可以不同,目的是分离。
行为型设计模式
行为型对象模式 和 行为型类模式 区别!!!
行为型对象模式采用组合或聚合在对象间分配行为
行为型类模式采用继承机制来在类间分派行为
由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象行为模式比类行为模式具有更大的灵活性
设计模式对应的UML图
参考文献【详解】:https://blog.csdn.net/qq_40274514/article/details/124047443