设计模式

面向对象笔记—设计模式

设计模式 一、概念 设计模式是一系列在实践中总结出来的可复用的面向对象的软件设计方式 设计模式就是描述一个反复出现的问题,以及解决这个问题的方案。可以重复使用这个解决方案而无须再做重复劳动。 解决设计问题的固定套路 重用,避免代码重复冗余 优化体系结构 提升系统的可维护性和弹性 代码更加容易测试,利 ......
设计模式 对象 模式 笔记

软件设计-职责链模式

软件设计 石家庄铁道大学信息学院 实验15:职责链模式 本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解职责链模式的动机,掌握该模式的结构; 2、能够利用职责链模式解决实际问题。 [实验任务一]:财务审批 某物资管理系统中物资采购需要分级审批,主任可以审批1万元及以下的采购单,部门 ......
职责 模式 软件

1.单例设计模式

单例模式的五种实现方式 1、饿汉式(线程安全,调用效率高,但是不能延时加载 public class ImageLoader{ private static ImageLoader instance = new ImageLoader; private ImageLoader(){} public ......
设计模式 模式

学习随笔(设计模式:工厂方法模式)

内容 今天学习了工厂方法模式,之前也学习了简单工厂模式。工厂方法模式是对简单工厂模式的抽象和升级。 收获 1.工厂方法模式延续了简单工厂模式对复杂创建过程的封装的优点,同时克服了简单工厂违背开放-封闭原则的缺点。 2.采用了多态的思想,将具体需要创建的对象交给了上层来决定,从而不需要修改自己内部的代 ......
模式 设计模式 随笔 工厂 方法

软件设计模式学习每日总结-第四天

第四天 建造者模式:将一个复杂对象的构建和他的表 建造者模式服务于多个成员的产品,无需用户关注建造的细节。 ......
设计模式 模式 软件

学习随笔(设计模式:代理模式)

内容 今天学习了代理模式,代理模式是为其他对象提供一种代理以控制对这个对象的访问。 收获 1.通过设计一个公共的接口,这个接口将来在真实实体中和代理中都实现 2.起到一种间接访问实体的功能或者将真实实体隔离的功能 感悟 1.如果我们考虑数据的安全性可以使用代理模式 2.如果我们想在操作真实数据对象时 ......
模式 设计模式 随笔

设计模式实验12实验13

外观模式 package test12; public class Memory { public void check(){ System.out.println("内存自检"); } } package test12; public class HardDisk { public void re ......
设计模式 模式

软件设计模式学习每日总结-第二天

回顾第一天:昨天学习的设计模式中的uml类图,还记得类与类的关系有关联(聚合、组合),依赖,继承,实现,其中依赖的耦合度最小,而继承的耦合度最大,而软件设计追求的就是高内聚,低耦合。 还学习各种软件设计原则。 第二天 创建型模式:将创建和使用分离,使用者不需要关注创建的细节。 简单工厂模式: 工厂方 ......
设计模式 模式 软件

Unity-工厂设计模式

Unity-工厂设计模式 原文出处:工厂方法设计模式 (refactoringguru.cn) 简介 ​ 工厂方法模式是一种创建型设计模式, 其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型。 工厂(方法)模式 问题引入 ​ 假设你正在开发一款物流管理应用。 最初版本只能处理卡车运输 ......
设计模式 工厂 模式 Unity

学习随笔(设计模式:装饰模式)

内容 今天学习了新的设计模式,装饰模式。装饰模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。 收获 1.当我们在设计软件时,考虑使用基类和派生类的时候,就可以考虑是否可以使用装饰模式,因为装饰模式比生成子类更加灵活 2.当我们对一个已有的类添加额外的功能时,开放 ......
模式 设计模式 随笔

软件设计实验12:外观模式

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

软件设计Tutorial 6_原型模式

[实验任务一]:向量的原型 用C++完成数学中向量的封装,其中,用指针和动态申请支持向量长度的改变,使用浅克隆和深克隆复制向量类,比较这两种克隆方式的异同。 实验要求: 1. 画出对应的类图; 2. 提交源代码(用C++完成); #include <iostream> #include <cstri ......
原型 Tutorial 模式 软件

软件设计Tutorial 13_享元模式

[实验任务一]:围棋 设计一个围棋软件,在系统中只存在一个白棋对象和一个黑棋对象,但是它们可以在棋盘的不同位置显示多次。 实验要求: 1. 提交类图; 2.提交源代码; 3.注意编程规范; 4.要求用简单工厂模式和单例模式实现享元工厂类的设计。 package Xiang; public class ......
Tutorial 模式 软件 13

学习随笔(设计模式:面向对象原则)

内容 今天学习了面向对象的几种设计思想原则,之前一直是C开发,所以面向过程的思想比较严重。面向对象的四个好处:可维护好、可拓展性好、可复用性好、灵活性好。 收获 1.单一职责原则:封装一个类,职责应该单一,仅有一个以其它变换的原因,所以要做好类的职责分离。 2.开放-封闭原则:软件实体(类、模块、函 ......
设计模式 随笔 对象 原则 模式

软件设计模式学习每日总结-第一天

Uml类图 1、 分三层,从上至下分别为类名,属性,方法。 2、 类与类之间的关系:关联(聚合,组合)、依赖、继承、实现。 3、 依赖是最低耦合,继承是最高耦合。 七大原则 1、 开闭原则:程序代码对扩展开发,对修改关闭。 2、 里氏代换原则:子类可以扩展父类功能,但是不要修改父类原有的功能。 3、 ......
设计模式 模式 软件

设计模式(十二)代理

一、定义 给某一个对象提供一个代理或占位符,并由代理对象控制对原对象的访问。代理模式是一种结构型模式。 二、描述 代理模式的结构比较简单,其核心是代理类,为了让客户端能够一致性地对待真实对象和代理对象,在代理模式中引入了抽象层。包含以下三个角色: 1、Subject(抽象主题角色):它声明真实主题和 ......
设计模式 模式

Spring5学习随笔-Spring5的基本介绍、工厂设计模式

学习视频:【孙哥说Spring5:从设计模式到基本应用到应用级底层分析,一次深入浅出的Spring全探索。学不会Spring?只因你未遇见孙哥】 第一章、引言 ![](https://img2023.cnblogs.com/blog/3321544/202311/3321544-2023111312 ......
Spring5 Spring 设计模式 随笔 工厂

软件设计实验10:组合模式

实验10:组合模式 本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解组合模式的动机,掌握该模式的结构; 2、能够利用组合模式解决实际问题。 [实验任务一]:组合模式 用透明组合模式实现教材中的“文件夹浏览”这个例子。 实验要求: 1. 文件的执行不需真正实现,只需简单提示即可; 2 ......
模式 软件

软件设计实验11:装饰模式

实验11:装饰模式 本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解装饰模式的动机,掌握该模式的结构; 2、能够利用装饰模式解决实际问题。 [实验任务一]:手机功能的升级 用装饰模式模拟手机功能的升级过程:简单的手机(SimplePhone)在接收来电时,会发出声音提醒主人;而Ja ......
模式 软件

结构型设计模式07-享元模式

结构型设计模式07-享元模式 1、享元模式介绍 享元模式是一种结构型设计模式,旨在通过共享对象来减少内存使用和提高性能。它主要用于处理大量细粒度对象的情况,其中许多对象具有相似的属性和行为。 在享元模式中,对象分为两种类型:内部状态(Intrinsic State)和外部状态(Extrinsic S ......
结构型 模式 设计模式 结构 07

一个操作系统的设计与实现——第3章 保护模式

实模式下,内存的访问是没有任何限制的,任何程序都能访问和修改任何内存地址,这就导致了实模式下的程序,甚至操作系统自己,都可能自身难保。于是,自8086的下一代产品80286起,保护模式诞生了;进一步的,自80386起,32位保护模式诞生了。 3.1 内存为什么要分段 在学习保护模式之前,需要先讨论一 ......
模式 系统

设计模式--Command模式

命令模式(Command Pattern)是一种行为设计模式,它将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。 命令模式主要包含以下几个角色: Command(抽象命令类):声明执行操作的接口。 ConcreteCommand(具 ......
模式 设计模式 Command

学习随笔(设计模式:策略模式)

内容:今天学习了设计模式中的策略模式。 1. 策略模式是一种定义一系列算法的方法,这些算法都是相同的工作,只是实现不同,通过以相同的方式调用不同的算法,减少算法之间的耦合度。 2.这种设计模式可以用来封装任何类型的规则,需求中在不同时间应用不同的业务规则,就可以考虑使用策略模式来处理。 收获: 1. ......
模式 设计模式 随笔 策略

学习随笔(设计模式:简单工厂模式)

内容:今天学习了设计模式中的简单工厂模式。收获: 1. 将所有相同类似的对象抽象,然后获得一个基类 2.再根据该基类封装成不同的派生类 3.当创建对象时,该对象可能是基类的任意一个派生类对象,那么到底是哪一个派生类呢?此时就可以通过工厂模式,用一个单独的类来做这个创造实例的过程,这就是工厂! 感悟: ......
模式 设计模式 随笔 工厂

设计模式 - Immutable 模式(Java不变集合类 vs Google Guava不变集合类)

总结 JDK中的unmodifiableList的构造函数是对原始集合的浅拷贝, 而Guava.ImmutableList.copyOf是对原始集合的深拷贝 public class ImmutableDemo { public static void main(String[] args) { L ......
模式 设计模式 Immutable Google Guava

C#设计模式 ---- 总结汇总(转载)

转载地址:https://www.cnblogs.com/PatrickLiu/p/8287784.html 一、引言 C#版本的23种设计模式已经写完了,现在也到了一个该总结的时候了。说起设计模式,我的话就比较多了。刚开始写代码的时候,有需求就写代码来解决需求,如果有新的需求,或者需求变了,我就想 ......
设计模式 模式

设计模式-适配器模式

参考:https://blog.csdn.net/yourgod007/article/details/131217788 概述 适配器模式是一种结构型设计模式,它允许将一个类的接口转换成客户端所期望的另一个接口。适配器模式的主要目的是解决两个不兼容接口之间的接口转换问题,使得原本由于接口不匹配而无 ......
模式 设计模式 适配器

设计模式—结构型模式之装饰器模式

本文介绍了结构型设计模式中的装饰器模式,讲解了它的特点和相关构成,并通过相应的案例,使用Java代码进行演示。 ......
模式 结构型 设计模式 结构

每日总结之设计模式:组合模式

一、什么是组合模式 组合模式也成为整体部分模式,是一种结构型设计模式。它将对象组合成树形的层次结构,用来表示“整体-部分”的关系。通过组合模式,我们可以使用相同的方式处理单个对象和多个对象组合。 二、角色组成 组件(Component):定义组合模式中所有对象共有的方法和属性。 叶子节点(Leaf) ......
模式 设计模式

软件设计实验9:桥接模式

实验9:桥接模式 本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解桥接模式的动机,掌握该模式的结构; 2、能够利用桥接模式解决实际问题。 [实验任务一]:两个维度的桥接模式 用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。 实验要求: 1.  ......
模式 软件