软考 - 面向对象开发

⭐设计模式UML详解:https://blog.csdn.net/qq_40274514/article/details/124047443

面向对象基础

面向对象的程序设计 和 面向对象设计区别

  • 面向对象的程序设计涉及到具体的编程语言

  • 面向对象设计只从系统逻辑结构设计解决方案

常见的机制

  • 动态绑定:过程调用和响应调用所需要执行的代码在运行时加以结合
  • 静态绑定:过程调用和响应调用所需要执行的代码在编译时加以结合

UML【下午重点】

UML是统一建模语言,和程序设计毫无关系!

UML基本构造块包含:事物、关系、图

事物(模型中最具有代表性的成分的抽象)

  • **结构事物:**模型的静态部分,如类,接口(声明对象类所需要服务),用例,构建等;
  • **行为事物:**模型的动态部分,如交互,活动,状态机;
  • **分组事物:**模型的组织部分,如包;
  • **注释事物:**模型的解释部分,简单符号;

软考 - 面向对象开发_第1张图片

关系(把事物结合到一起)

  • **依赖:**假设A类的变化引起了B类的变化,则说名B类依赖于A类。【调用其他类的方法】
  • 关联:分为聚合和组合,其中组合事物之间关系更强;两个类之间可以有多个由不同角色表示的关联
    • 聚合:即属性是外部类
    • 组合:即属性是内部类,同生共死
  • **泛化:**一般/特殊关系,字类和父类之间的关系
  • **实现:**一个类元指定了另一个类元保证执行的契约

软考 - 面向对象开发_第2张图片

图(聚集了相关的事物)

静态图

  • 类图:

  • 对象图:

  • 用例图:

  • 构件图:

  • **部署图:**系统静态部署图,表示软件组件和硬件之间的物理关系

动态图

  • 序列图:

  • 通信图:

  • 状态图:

  • 活动图:

实体类:主要负责数据和业务逻辑;
边界类:负责和用户进行交互,即用户界面;
控制类:负责实体类和界面类的交互;

设计模式

设计模式中的六大原则

  • 单一原则:一个类只负责一个功能领域的相应职责,实现高内聚低耦合
  • 开放-封闭原则:对增加进行开放,对修改则关闭
  • 里氏替换LSP原则:
    • 任何有**基类(父类)**出现的地方,子类一定可以出现
    • 软件系统中把基类都替换成它的子类,程序的行为没有变化
  • 依赖倒转原则:依赖于抽象,不依赖于实现
  • 接口隔离原则:客户端不应该依赖于它不需要的接口
  • 迪米特法则:合理引入一个第三者来降低现有对象之间的耦合度

解决方案的核心!

需要注意英文名称!!!

创建型设计模式

抽象工厂模式 和 工厂方法模式的区别
参考文献:
UML图:https://www.jianshu.com/p/6060e0632071
差异分析:https://www.cnblogs.com/my-blog-site/p/16293474.html

工厂方法模式、抽象工厂模式,傻傻分不清楚?
为了解释得更清楚,先介绍两个概念:
产品等级结构:比如一个抽象类是食物,其子类有苹果、牛奶等等,则抽象食物与具体食物名称之间构成了一个产品等级结构。食物是抽象的父类,而具体的食物名称是其子类。
产品族:在抽象工厂模式中,产品族是指由同一个工厂生产的,位于不同产品等级结构中的一组产品。如 AKitchen 生产的苹果、刀子,苹果属于食物产品等级结构中,而刀子则属于餐具产品等级结构中。而 BKitchen 可能生成另一组产品,如牛奶、杯子。
因此工厂方法模式、抽象工厂模式最大的区别在于:
工厂方法模式:针对的是 一个产品等级结构。
抽象工厂模式:针对 多个产品等级结构。
抽象模式比工厂模式高级!!

总结做题:
工厂方法模式:每个具体工厂类只能创建一个具体产品类的实例
抽象工厂模式:每个具体工厂类可以创建多个具体产品类实例

软考 - 面向对象开发_第3张图片

结构型设计模式

适配器模式和桥接模式的区别:
适配器模式:改变已有的两个接口,让他们相容。
桥接模式:分离抽象化和实现,使两者的接口可以不同,目的是分离。

软考 - 面向对象开发_第4张图片

行为型设计模式

行为型对象模式 和 行为型类模式 区别!!!
行为型对象模式采用组合或聚合在对象间分配行为
行为型类模式采用继承机制来在类间分派行为
由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象行为模式比类行为模式具有更大的灵活性

软考 - 面向对象开发_第5张图片

软考 - 面向对象开发_第6张图片

软考 - 面向对象开发_第7张图片

设计模式对应的UML图

参考文献【详解】:https://blog.csdn.net/qq_40274514/article/details/124047443

你可能感兴趣的:(软件设计师中级考试,【结】,uml,java,开发语言,软考)