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

简介: 1 总线处理机主要由 处理器、存储器、总线组成。总线包括:数据总线、地址总线、控制总线总线:任何连接两个以上电子元器件的导线1)芯片内总线:用于在集成电路芯片各部分的连接2)元件级总线:用于一块电路板内各元器件的连接3)内总线(系统总线):用...

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(自适应差分脉冲编码调制),用于数字通信系统

目录
相关文章
|
7月前
|
设计模式
【中级软件设计师】—(针对上午题)二十三种设计模式(三十九)
【中级软件设计师】—(针对上午题)二十三种设计模式(三十九)
|
算法 C# C++
软件设计师10-面向对象-设计模式
设计模式 1 观察者 (发布-订阅Subscribe、模型-视图View、源-收听者Listener、从属者模式) 定义了一对多的依赖关系,让观察者同时监听一个对象,随之自动更新自己 2 策略 :定义了一系列算法,把他们各个封装起来,使他们可相互替换。
1021 0
|
设计模式 存储 算法
软件设计师考试:设计模式
在面向对象软件开发过程中,采用设计模式以复用成功的设计。 Brige(桥接)模式将对象的抽象和其现实分离,从而可以独立地改变它们,抽象类定义对该抽象的接口,而具体的子类则用不同的方式加以实现。 Composite(组合模式)是结构型对象模式的一个实例。它描述了如何构造一个类层次式结构。
3260 0
|
1月前
|
设计模式 安全 Java
Kotlin教程笔记(51) - 改良设计模式 - 构建者模式
Kotlin教程笔记(51) - 改良设计模式 - 构建者模式
|
3月前
|
设计模式 数据库连接 PHP
PHP中的设计模式:提升代码的可维护性与扩展性在软件开发过程中,设计模式是开发者们经常用到的工具之一。它们提供了经过验证的解决方案,可以帮助我们解决常见的软件设计问题。本文将介绍PHP中常用的设计模式,以及如何利用这些模式来提高代码的可维护性和扩展性。我们将从基础的设计模式入手,逐步深入到更复杂的应用场景。通过实际案例分析,读者可以更好地理解如何在PHP开发中应用这些设计模式,从而写出更加高效、灵活和易于维护的代码。
本文探讨了PHP中常用的设计模式及其在实际项目中的应用。内容涵盖设计模式的基本概念、分类和具体使用场景,重点介绍了单例模式、工厂模式和观察者模式等常见模式。通过具体的代码示例,展示了如何在PHP项目中有效利用设计模式来提升代码的可维护性和扩展性。文章还讨论了设计模式的选择原则和注意事项,帮助开发者在不同情境下做出最佳决策。
|
1月前
|
设计模式 开发者 Python
Python编程中的设计模式:工厂方法模式###
本文深入浅出地探讨了Python编程中的一种重要设计模式——工厂方法模式。通过具体案例和代码示例,我们将了解工厂方法模式的定义、应用场景、实现步骤以及其优势与潜在缺点。无论你是Python新手还是有经验的开发者,都能从本文中获得关于如何在实际项目中有效应用工厂方法模式的启发。 ###
|
1月前
|
设计模式 安全 Java
Kotlin教程笔记(51) - 改良设计模式 - 构建者模式
Kotlin教程笔记(51) - 改良设计模式 - 构建者模式
39 1
|
2月前
|
设计模式 Java Kotlin
Kotlin教程笔记(51) - 改良设计模式 - 构建者模式
本教程详细讲解Kotlin语法,适合希望深入了解Kotlin的开发者。对于快速学习Kotlin语法,推荐查看“简洁”系列教程。本文重点介绍了构建者模式在Kotlin中的应用与改良,包括如何使用具名可选参数简化复杂对象的创建过程,以及如何在初始化代码块中对参数进行约束和校验。
28 3
|
3月前
|
设计模式 算法 安全
设计模式——模板模式
模板方法模式、钩子方法、Spring源码AbstractApplicationContext类用到的模板方法
设计模式——模板模式
|
3月前
|
设计模式 数据库连接 PHP
PHP中的设计模式:如何提高代码的可维护性与扩展性在软件开发领域,PHP 是一种广泛使用的服务器端脚本语言。随着项目规模的扩大和复杂性的增加,保持代码的可维护性和可扩展性变得越来越重要。本文将探讨 PHP 中的设计模式,并通过实例展示如何应用这些模式来提高代码质量。
设计模式是经过验证的解决软件设计问题的方法。它们不是具体的代码,而是一种编码和设计经验的总结。在PHP开发中,合理地使用设计模式可以显著提高代码的可维护性、复用性和扩展性。本文将介绍几种常见的设计模式,包括单例模式、工厂模式和观察者模式,并通过具体的例子展示如何在PHP项目中应用这些模式。

相关实验场景

更多