解释器 设计模式 语言 模式

代理模式 Proxy

一、定义 为其他对象提供一种代理,以控制对这个对象的访问 代理对象在客户端和目前对象之间起到中介的作用 二、适用场景 保护目标对象 增强目标对象 三、优缺点 1、优点 代理模式能将代理对象与真实被调用的目标对象分离 一定程度上降低了系统的耦合度,扩展性好 保护目标对象 增强目标对象 2、缺点 代理模 ......
模式 Proxy

桥接模式 Bridge

一、定义 将抽象部分与它的具体实现部分分离,使它们都可以独立地变化 通过组合的方式建立两个类之间联系,而不是继承 二、适用场景 抽象和具体实现之间需要更多灵活性 一个类存在两个(或多个)独立变化的维度,且这两个(或多个)维度都需要独立进行扩展 不希望使用继承,或因为多层继承导致系统类的个数激增 三、 ......
模式 Bridge

组合模式 Cpmposite

一、定义 将对象组合成树形结构以表示“整体-部分”的层次结构 组合模式是客户端对单个对象和组合对象保持一致的处理方式 二、适用场景 希望客户端可以忽略组合对象与单个对象的差异时 处理一个树形结构时 三、优缺点 1、优点 清楚地定义分层次的复杂对象,表示对象的全部或部分层次 让客户端忽略层次的差异,方 ......
Cpmposite 模式

外观模式 Facade

又称:门面模式 一、定义 提供了一个统一的接口(高层接口),用来访问子系统中的一群接口 二、适用场景 子系统越来越复杂,增加外观模式提供简单调用接口 构建多层系统结构,利用外观对象作为每层的入口,简化层间调用 三、优缺点 1、优点 简化了调用过程,无需了解或深入子系统,防止带来风险 减少系统依赖、松 ......
外观 模式 Facade

原型模式 Prototype

一、定义 指原型实例制定创建对象的种类,并且通过拷贝这些原型创建新的对象 二、特点 不需要知道任何创建细节,不调用构造函数 实现Clonable接口 三、适用场景 累出实话消耗资源较多 new产生一个对象需要非常繁琐的过程(如:数据准备、访问权限等) 构造函数比较复杂 循环体中产生大量对象时 四、优 ......
原型 Prototype 模式

享元模式 Flyweight

一、定义 提供了减少对象数量从而改善应用所需对象创建的方式 运用共享技术有效地支持大量细粒度的对象 二、使用场景 常用于系统底层的开发,以便继绝系统的性能问题 系统有大量相似的对象、需要缓冲池的场景 三、优缺点 1、优点 减少对象的创建,从而降低内存中对象的数量,降低系统的内存,提高效率 减少内存之 ......
Flyweight 模式

装饰者模式 Decorator

一、定义 在不改变原有对象的基础上,将功能附加到对象上 提供了比继承更有弹性的替代方案(扩展原有对象) 类似于游戏中的Buff,当一个英雄获得了红/蓝Buff时,原英雄能力不变,又额外增加了Buff相应属性 二、适用场景 扩展一个类的功能或给一个类添加附加的职责 动态的给一个对象添加功能,这些功能可 ......
Decorator 模式

单例模式 Singleton

一、定义 保证一个类仅有一个实例,并提供一个全局访问点 二、使用场景 希望确保任何情况下只有一个实例 三、优缺点 1、优点 在内存里只有一个实例,减少内存开销 可以避免资源的多重占用 设置全局的访问点,严格控制访问 2、缺点 没有接口,扩展困难 四、代码实现 1、懒汉式 在被客户端首次调用的时候才会 ......
Singleton 模式

工厂模式 Factory Method

一、简单工厂 定义一个工厂类,根据传入的参数的值的不同返回不同是实例 1、特点 被创建的实例具有共同的父类或接口 2、适用场景 需要创建的对象较少 客户端(应用层)只知道传入工厂的参数,对如何创建对象(逻辑)不关心 3、优缺点 优点:可以对创建的对象进行“加工”,对客户端隐藏相关细节缺点: 因创建逻 ......
工厂 Factory 模式 Method

抽象工厂模式 Abstract Factory

一、定义 提供一个创建一系列相关或相互依赖对象的接口 抽象工厂模式侧重的是同一产品族,而抽象工厂侧重的是同一产品等级 二、适用场景 客户端(应用层)不依赖于产品类实例如何被创建、实现等细节 强调一些列相关的产品对象(属于同一产品族)一起使用,创建对象需要大量复杂代码 提供一个产品类的库,所有的产品以 ......
Abstract 工厂 Factory 模式

状态模式 State

一、定义 一个对象存在多个状态(不同状态下行为不同),且状态可相互转换 二、适用场景 如:播放器,播放/暂停都是状态,不同状态下行为不同 三、优缺点 1、优点 将不同的状态隔离 把各种状态的转换逻辑,分不到State的子类中,减少相互间依赖 增加新的状态非常简单 2、缺点 状态多的业务场景会导致类数 ......
状态 模式 State

命令模式 Command

一、定义 将“请求”封装成对象,以便使用不同的请求 命令模式解决了应用程序中对象的职责以及他们之间的通信方式 二、适用场景 请求调用者和请求接收者需要解耦,使得调用者和接收者不直接交互 需要抽象出等待执行的行为 三、优缺点 1、优点 降低耦合 容易扩展新命令或一组命令 2、缺点 命令的无限扩展会增加 ......
命令 Command 模式

访问者模式 Visitor

一、定义 封装作用域某数据结构(如List/Set/Map等)中的各元素的操作 可以在不改变各元素类的前提下,定义作用于这些元素的操作 二、适用场景 一个数据结构(如List/Set/Map等)包含很多类型的对象 数据结构和数据操作分离 三、优缺点 1、优点 增加新的操作很容易,即增加一个新的访问者 ......
访问者 Visitor 模式

中介者模式 Mediator

一、定义 定义一个封装一组对象如何交互的对象 通过使对象明确的相互饮用来促进松散耦合,并允许独立地改变他们的交互】 二、适用场景 系统中对象之间存在复杂的引用关系,产生的相互依赖关系结构混乱且难以理解 交互的公共行为,如果需要改变行为则可以增加新的中介者类 类似于聊天室(群组) 使用观察者模式负责中 ......
中介者 Mediator 中介 模式

备忘录模式 Memento

一、定义 保存一个对象的某个状态,以便在适当的时候恢复对象 后悔药 二、适用场景 保存及恢复数据相关业务场景 后悔的时候,即想恢复到之前的状态 三、优缺点 1、优点 为用户提供一种可恢复机制 存档信息的封装 2、缺点 资源占用 四、代码实现 https://github.com/Meidanlong ......
备忘录 Memento 模式

责任链模式 Chain Of Responsibility

一、定义 为请求创建一个接收此次请求对象的链 特点:类中包含一个和自己同类型类的对象 二、适用场景 一个请求的处理需要多个对象当中的一个或几个协作处理 三、优缺点 1、优点 请求的发送者和接收者(请求的处理)解耦 责任链可以动态组合 2、缺点 责任链太长或者处理时间过长,影响性能 责任链有可能过多 ......
Responsibility 模式 责任 Chain Of

C语言使用条件编译导致结构体赋值“不正确”的问题

首先当你遇到任何觉得是编译器有问题的情况时一定坚定一个信念:“编译器不会有问题” 这回我遇到的问题看上去就很像编译器有问题,但排查下来最终发现还是自己的问题,我将这个问题简化后是这样的:取出一个结构体中的成员的值,在有些文件中取出来是正确的,有些文件中取出来是不正确的。 复现方法如下,需要编写4个文 ......
条件 语言 结构 问题

12.20设计模式复习安排

1.默写每个模式的定义和例子 2.每个原则的定义 3.对应模式代码核心内容 4.看模式实例画类图 对于下述场景,选择合适的软件设计模式进行设计,说明选用的设计模式的名称,简单描述该模式,并画出对应的类图。(共 15 分,其中软件设计模式的名称 3 分,模式描述 4 分,类图 8 分) 题一: 题二: ......
设计模式 模式 12.20 12 20

2023-2024-120231329《计算机基础与程序设计》第13周学习总结

作业信息 这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP 这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html 这个作业的目标 《C语言程序设计》第12章并完成 ......

平台代收代付数据库表的设计

平台代收代付数据库表的设计 1.费用项目通过cost_code来唯一标识,根据费用编码来锁定费用,不使用在数据表中比如费用表,每增加一个费用而增加一个费用字段的方式,这样会导致不灵活,不容易扩展。通过费用编码的方式,可以将费用表的字段的方式纵向的拉平为多条费用的横向方式,便于扩展,系统每增加一个费用 ......
数据库 数据 平台

《重构:改善既有代码的设计》读书笔记二

二、代码的坏味道 1、Duplicated Code(重复代码) 坏味道首当其冲的就是Duplicated Code,如果你在一个以上的地点看到相同的重复结构,那么这个坏味道就可以确定了,设法将它们合而为一 同一个类中两个或更多的函数含有相同的表达式 利用Extract Method(提炼方法)提炼 ......
代码 笔记

2023-2024 20231313《计算机基础与程序设计》第十三周学习总结

2023-2024 20231313《计算机基础与程序设计》第十二周学习总结 作业 速达 作业课程 班级链接 作业要求 计算机基础与程序设计第十三周学习总结 作业内容 《C语言程序设计》第12章并完成云班课测试 作业正文 我的作业 目录教材总结总结学习过程的问题《C语言程序设计》第十二章基于AI的学 ......

软件设计12

[实验任务一]:计算机开启 在计算机主机(Mainframe)中,只需要按下主机的开机按钮(on()),即可调用其他硬件设备和软件的启动方法 ,如内存(Memory)的自检(check())、CPU的运行(run())、硬盘(HardDisk)的读取(read())、操作系统(OS)的载入(load ......
软件

运行js文件,会弹出一个python解释器的界面,怎么解决呢?

大家好,我是皮皮。 一、前言 前几天在Python白银交流群【菜🐤】问了一个Python环境配置的问题,一起来看看吧。问题如下: 问题:下载安装nodejs,然后在pycharm专业版里面也下载了nodejs的插件,配置好运行路径后,运行js文件,会弹出一个python解释器的界面,怎么解决呢? ......
解释器 界面 文件 python

我所知道Pascal语言

我所知道Pascal语言 源于2012年袁辉勇老师C语言程序设计 2014年暑假 在匠成楼学习梁文兵同学的参加程序设计比赛经历,使用过pascal语言 2015年 编译原理课上 高级语言 Pascal(结构化编程语言) 过程式编程语言 Pascal是一种过程式编程语言,由Niklaus Wirth于 ......
语言 Pascal

C语言中文网

关于C语言中文网」 C语言中文网,一个在线学习编程的网站。它始于C语言,但不终于C语言,除了C语言,您还可以学习 C++、Java、Python、Golang、PHP、Linux 等其它技能,请「猛击这里」查看所有教程。C语言中文网成立于 2012 年初,由站长「严长生」在大三寒假期间创办,致力于分 ......
语言 中文网

职责链模式

请假的顺序是,你要将假条交给辅导员,如果辅导员处理不了要上交给院长,院长处理不了交给校长。 而Handler就是个领导,secceor是上级 ......
职责 模式

C 语言运算符详解

C 语言中的运算符 运算符用于对变量和值进行操作。 在下面的示例中,我们使用 + 运算符将两个值相加: int myNum = 100 + 50; 虽然 + 运算符通常用于将两个值相加,就像上面的示例一样,它还可以用于将变量和值相加,或者将变量和另一个变量相加: int sum1 = 100 + 5 ......
运算符 语言

软件设计期末试卷2020级

第1页 /共 6页 石家庄铁道大学 2022 年秋季学期 2020 级本科期末考试试卷(A) 课程名称:软件设计(闭卷) 任课教师: 王辉 考试时间:100 分钟 学号: 姓名: 班级: 考试性质(学生填写):正常考试( )缓考( )补考( )重修( )提前修读( ) 题 号 一 二 三 四 五 六 ......
试卷 软件 2020
共17000篇  :31/567页 首页上一页31下一页尾页