软件设计师备考知识05--设计模式

本文深入探讨了计算机系统核心组件,如总线结构及其分类,以及UML类图关系,包括依赖、泛化、关联、聚合和组合等概念。同时,详细介绍了设计模式的三大类型:创建型、结构型和行为型模式,每种模式下具体实例如工厂方法、单例、适配器和观察者模式等,旨在提高代码复用性和理解性。

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

1 总线

处理机主要由 处理器、存储器、总线组成。总线包括:数据总线、地址总线、控制总线

总线:任何连接两个以上电子元器件的导线

1)芯片内总线:用于在集成电路芯片各部分的连接

2)元件级总线:用于一块电路板内各元器件的连接

3)内总线(系统总线):用于构成计算机各组成部分(CPU、内存、接口等)的连接

4)外总线(通信总线):用计算机与外设或计算机与计算机的连接或通信

2 UML类图关系

下图与下面描述一 一对应

img_43039019e6aa3e8954250d78f23f66d6.jpe
UML类图关系

1)依赖 使用关系、某个类的方法使用了另一个类的对象作为参数 由依赖的一方指向被依赖的一方


img_74ccf54c38d2b0601663d16ad80f55c5.jpe
dependency

2)泛化

一般元素和特殊元素之间的关系、继承关系的反关系、子类从父类继承 父类是子类的泛化


img_7ec59eb8df7dbf82457fb4e8f19ecaef.jpe
generalization

3)关联

两个类之间存在某种语义上的联系

 1)聚合

整体与部分、可分离,有各自生命周期。


img_7f03b2c3bec6d142a9a6760024a2029b.jpe
juhe

2)组合(强聚合)

整体与部分之间不可分割,有共同生命周期


img_208ea360813c47f24abb2df08a7282d4.jpe
zuhe

4)实现

一个元素完成另一个元素的操作功能,如:接口类及其实现

3 语言类型

1 编译/解释型语言 

1)编译型: 该语言编写的程序执行前,需要由相应的编译器将源程序翻译成目标代码程序,然后在目标机器上运行

  如:C语言

   2)解释型:该语言编写的程序无需编译为目标代码即可执行;需要对应解释器负责检查源程序的语法、进行语义分析,采用边编译边执行的方式

        1)语法分析是便宜过程的一个逻辑阶段,是在语法分析的基础上将单词序列组合成各类语法短语,判断源程序结构是否正确。

         源程序结构由上下文无关法描述

2 强/弱类型语言

1)从内存上来说:允许将一块内存看作多种类型,比如将整体类型变量与字符类型变量相加

2)从语法上来说,在变量或者对象使用前,需要声明类型的语言是请类型语言

强类型语言:java、c/c++、c#

弱类型语言:python

4 为保证数据库中数据的安全可靠和正确有效,系统进行系统事务处理时,对插入等的全部有关内容先写入日志文件(包含恢复数据库中的所有事物所需的信息);系统正常运行时,再按照时间间隔,把数据库缓冲区内容写入数据文件(包含数据和对象,如表、索引、存储过程、视图等)

5 设计模式

为了可重用代码,让代码更易于理解,使代码编制真正工程化,是软件工程的基石

1)创建型模式 创建对象

1)工厂方法模式(虚拟构造器模式)只能生产一个产品等级结构


img_5e86d7aa938d76461c14792c7d15172f.jpe
factory

定义创建对象的接口,由子类决定实例化哪一个类

factory 抽象工厂 

concreteFactory 抽象工厂

2)抽象工厂模式

创建一系列相关或相互依赖对象的接口,生产多个产品等级结构(即一个抽象工厂模式包含多个工厂方法模式)


img_7695dde39875dc63c24d9b00213b8a06.jpe
abfactory

3)单例模式

确保某一个类只有一个实例,而且自行实例化,并向整个系统提供这个实例


img_7d1fca2c78439a870014d71f58db42b8.jpe
singleton

4)建造者模式(封装对象)

将一个复杂对象的构建与它的表示分离,无需知道内部细节

img_1fd1029bd77e546989a6f751cdcadf24.jpe

5)原型模式

用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象


img_4ec4841390121a226168eda92bfea839.jpe
prototype

2)结构型模式 处理类或对象

1)适配器模式

将一个类的接口转换成客户希望的另一个接口,使其协同工作。


img_ab30b7fcf7edede3024d6684ac7dbe0f.jpe
adapter

2)装饰模式

动态给一个对象添加额外职责


img_aa026ca5432f1c08b13d44b30ef34571.jpe
decorator

3)代理模式

给某对象提供一个代理,并由代理对象控制对原对象的引用


img_37adbe2d64e0975057618b1b58b019ba.jpe
proxy

4)外观模式

定义一个高层接口,为子系统中的一组接口提供一个一致的界面,从而简化子系统的使用


img_ec120e8292ed9f48fbb471641de8d064.jpe
Facade

5)桥接模式

抽象部分与实现部分分离,使他们可以独立的变化

6)组合模式

将对象组合成树形结构以表示”部分-整体“的层次结构。使用户对单个对象和组合对象的使用具有一致性

img_16ff3998343fdfe0c648d6710c374be5.jpe
compent

7)享元模式

支持大量细粒度对象共享的有效方法。通过享元技术实现相同或相似对象的重用

3)行为型模式 类或对象怎样交互和分配职责

1)策略模式

2)模块方法模式

定义一个操作中的算法的骨架,将一些步骤推迟到子类中,使子类在不改变算法结构即可重定义该算法


img_401f74c2847efab5463ddfe30c35d5ab.png
Template

3)观察者模式

4)迭代子模式

5)责任链模式

很多人都有机会处理请求(根据条件选处理人)


img_6b99f5213994be76b1abea0f330d3fc8.jpe

6)命令模式

7)备忘录模式

8)状态模式

9)访问者模式

10)中介者模式

11)解释器模式

定义语言的文法,并且定义一个解释器来解释该语言中的句子


img_709a9383210922c58a1fa8d2a077785e.png

6 编码国际标准

1)JPEG(联合图像专家组),一种支持8位和24位色彩的压缩位图格式,流行的图像文件格式

2)MPEG(动态图像专家组),一种流行的图像、视频编码标准,包含MPEG-1、MPEG-2、MPEG-4、MPEG-7、MPEG-21等子标准

3)H.264(P*64),P为64Bb/s的取值范围,是1到30 的可变参数,最初针对在ISDN上实现电话会议应用设 计,视频编码标准

4)ADPCM(自适应差分脉冲编码调制),用于数字通信系统

目 录 序言 前言 读者指南 第1章 引言 1 1.1 什么是设计模式 2 1.2 Smalltalk MVC中的设计模式 3 1.3 描述设计模式 4 1.4 设计模式的编目 5 1.5 组织编目 7 1.6 设计模式怎样解决设计问题 8 1.6.1 寻找合适的对象 8 1.6.2 决定对象的粒度 9 1.6.3 指定对象接口 9 1.6.4 描述对象的实现 10 1.6.5 运用复用机制 13 1.6.6 关联运行时刻和编译时刻的 结构 15 1.6.7 设计应支持变化 16 1.7 怎样选择设计模式 19 1.8 怎样使用设计模式 20 第2章 实例研究:设计一个文档编 辑器 22 2.1 设计问题 23 2.2 文档结构 23 2.2.1 递归组合 24 2.2.2 图元 25 2.2.3 组合模式 27 2.3 格式化 27 2.3.1 封装格式化算法 27 2.3.2 Compositor和Composition 27 2.3.3 策略模式 29 2.4 修饰用户界面 29 2.4.1 透明围栏 29 2.4.2 Monoglyph 30 2.4.3 Decorator 模式 32 2.5 支持多种视感标准 32 2.5.1 对象创建的抽象 32 2.5.2 工厂类和产品类 33 2.5.3 Abstract Factory模式 35 2.6 支持多种窗口系统 35 2.6.1 我们是否可以使用Abstract Factory 模式 35 2.6.2 封装实现依赖关系 35 2.6.3 Window和WindowImp 37 2.6.4 Bridge 模式 40 2.7 用户操作 40 2.7.1 封装一个请求 41 2.7.2 Command 类及其子类 41 2.7.3 撤消和重做 42 2.7.4 命令历史记录 42 2.7.5 Command 模式 44 2.8 拼检查和断字处理 44 2.8.1 访问分散的信息 44 2.8.2 封装访问和遍历 45 2.8.3 Iterator类及其子类 46 2.8.4 Iterator模式 48 2.8.5 遍历和遍历过程中的动作 48 2.8.6 封装分析 48 2.8.7 Visitor 类及其子类 51 2.8.8 Visitor 模式 52 2.9 小结 53 第3章 创建型模式 54 3.1 Abstract Factory(抽象工厂)— 对象创建型模式 57 3.2 Builder(生成器)—对象创建型 模式 63 3.3 Factory Method(工厂方法)— 对象创建型模式 70 3.4 Prototype(原型)—对象创建型 模式 87 3.5 Singleton(单件)—对象创建型 模式 84 3.6 创建型模式的讨论 89 第4章 结构型模式 91 4.1 Adapter(适配器)—类对象结构型 模式 92 4.2 Bridge(桥接)—对象结构型 模式 100 4.3 Composite(组成)—对象结构型 模式 107 4.4 Decorator(装饰)—对象结构型 模式 115 4.5 FACADE(外观)—对象结构型 模式 121 4.6 Flyweight(享元)—对象结构型 模式 128 4.7 Proxy(代理)—对象结构型 模式 137 4.8 结构型模式的讨论 144 4.8.1 Adapter与Bridge 144 4.8.2 Composite、Decorator与Proxy 145 第5章 行为模式 147 5.1 CHAIN OF RESPONSIBIL ITY(职责链) —对象行为型模式 147 5.2 COMMAND(命令)—对象行为型 模式 154 5.3 INTERPRETER(解释器)—类行为型 模式 162 5.4 ITERATOR(迭代器)—对象行为型 模式 171 5.5 MEDIATOR(中介者)—对象行为型 模式 181 5.6 MEMENTO(备忘录)—对象行为型 模式 188 5.7 OBSERVER(观察者)—对象行为型 模式 194 5.8 STATE(状态)—对象行为型模式 201 5.9 STRATEGY(策略)—对象行为型 模式 208 5.10 TEMPLATE METHOD(模板方法) —类行为型模式 214 5.11 VISITOR(访问者)—对象行为型 模式 218 5.12 行为模式的讨论 228 5.12 1 封装变化 228 5.12.2 对象作为参数 228 5.12.3 通信应该被封装还是被分布 229 5.12.4 对发送者和接收者解耦 229 5.12.5 总结 231 第6章 结论 232 6.1 设计模式将带来什么 232 6.2 一套通用的设计词汇 232 6.3 书文档和学习的辅助手段 232 6.4 现有方法的一种补充 233 6.5 重构的目标 233 6.6 本书简史 234 6.7 模式界 235 6.8 Alexander 的模式语言 235 6.9 软件中的模式 236 6.10 邀请参与 237 6.11 临别感想 237 附录A 词汇表 238 附录B 图示符号指南 241 附录C 基本类 244 参考文献 249
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值