9.设计模式

设计原理

基本原理

  • 抽象
  • 模块化
  • 隐蔽性
  • 模块独立

内聚

以下顺序从低到高:

  • 偶然内聚:无直接关系
  • 逻辑内聚:逻辑相似,参数决定,函数复用
  • 时间内聚:同时执行,能同步,不异步
  • 过程内聚:过程顺序相同
  • 通信内聚:数据结构相同,输入输出相同
  • 顺序内聚:顺序执行,输入为输出
  • 功能内聚:共同作用,缺一不可

耦合

  • 无直接耦合:无直接关系
  • 数据耦合:值传递调用
  • 标记耦合:传递结构体
  • 控制耦合:控制变量,选择执行功能
  • 外部耦合:软件外部环境
  • 公共耦合:公共数据结构体
  • 内容耦合:模块内部关联

面向对象

基本定义

    • 实体类:有数据有行为,实际对象建模的类
    • 边界类:系统间尽心交互建模的类
    • 控制类:对控制行为进行建模的类,比如异常
  • 多态
    • 参数多态:不同类型参数,含义不同。比如to_string();
    • 包含多态:父子类型关系
    • 过载多态:一个名字不同含义
    • 强制多态:强制类型转换
  • 覆盖:子类实现与父类同名同参函数,是覆盖父类方法
  • 函数重载:同名不同参
  • 静态绑定与动态绑定:静态,有编译时绑定,动态运行时绑定

面向对象分析

  • 五个活动:认定对象,对象抽象,描述对象间关系,确定对象间操作,定义对象内部属性
  • 设计与程序设计:设计分为设计分析和程序设计(代码实现)
  • 测试:算法层(函数测试),类层(类测试),模板层(模块测试),系统层(整体测试)

UML

三个基本构造块:事务,关系,图

事务

结构事务

image-20210519004705037

行为事务

image-20210519005301577

分组事务和注释事务

image-20210519005316952

关系

三级石:三角形,实线–继承,虚线–实现

见关一:箭头,实线–关联,虚线–依赖

零足距:菱形,实心–组合,空心–聚集

类图

​ 静态图,可以展现,多重度(类的N对N关系),属性,操作,关系

image-20210519011155477

对象图

​ 静态图,类图的一个快照,类被实力化为对象

image-20210519011054565

用例图

​ 描述参与者的一系列操作,用例(操作)之间的关系:包含(子操作),扩展(关联),泛化(抽象)

image-20210519011740798

序列图

活动图

image-20210521011025091

构件图

image-20210521011219890

23个设计模式

创建型

  • 抽象工厂:抽象接口
  • 构建器:类与构造分离
  • 工厂:子类决定实例化
  • 原型:原型实例,拷贝,虚拟机的快照
  • 单例:唯一实例

结构型

  • 适配器(Adapter):转换,兼容接口
  • 桥接(Bridge):抽象与实现分离
  • 组合(Composite):整体-部分,树形结构
  • 装饰(Decorator):附加职责
  • 外观(Facade):对外统一接口
  • 享元(Flyweight):细粒度,共享
  • 代理:代理控制

行为型

  • 职责链(Chain of Responsibility):传递请求、职责、链接(live555核心模式)
  • 命令(Command):参数化、日志记录
  • 解释器(Interpreter):文法、解释
  • 迭代器(Iterator):顺序访问
  • 中介(Mediator):不直接引用
  • 备忘录(Memento):保存、恢复
  • 观察者(Observer):通知、自动更新
  • 状态(State):状态变类
  • 策略(Strategy):算法替换
  • 模板(Template):框架
  • 访问者(Visitor):只读操作

):不直接引用

  • 备忘录(Memento):保存、恢复
  • 观察者(Observer):通知、自动更新
  • 状态(State):状态变类
  • 策略(Strategy):算法替换
  • 模板(Template):框架
  • 访问者(Visitor):只读操作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java设计模式是一种被广泛应用于Java编程语言中的软件设计模式,它们是经过验证的最佳实践,可以帮助开发人员解决常见的设计问题,提高代码的可重用性、可维护性和灵活性。 以下是常见的Java设计模式: 1. 单例模式(Singleton Pattern):确保一个类只有一个实例,并提供全局访问点。 2. 工厂模式(Factory Pattern):定义一个用于创建对象的接口,但让子类决定实例化哪个类。 3. 抽象工厂模式(Abstract Factory Pattern):提供一个接口,用于创建相关或依赖对象的家族,而不需要指定具体类。 4. 建造者模式(Builder Pattern):将一个复杂的对象构建过程分解为多个简单对象的组合。 5. 代理模式(Proxy Pattern):为其他对象提供一种代理以控制对这个对象的访问。 6. 装饰器模式(Decorator Pattern):动态地给一个对象添加一些额外的职责,而不需要修改这个对象的类。 7. 观察者模式(Observer Pattern):定义了对象之间的一对多依赖关系,当一个对象改变状态时,所有依赖于它的对象都会得到通知并自动更新。 8. 策略模式(Strategy Pattern):定义一系列算法,将每个算法封装起来,并使它们可以互换。 9. 模板方法模式(Template Method Pattern):定义一个操作中的算法骨架,而将一些步骤延迟到子类中实现。 10. 适配器模式(Adapter Pattern):将一个类的接口转换为客户希望的另一个接口,使得原本由于接口不兼容而不能在一起工作的那些类可以在一起工作。 这些设计模式可以帮助Java开发人员更好地组织和设计他们的代码,提高代码的可读性和可维护性,并增加代码的灵活性和可扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值