设计模式

spring中的设计模式

视频资料**最后三分钟**:https://www.bilibili.com/video/BV1Us4y167cN/?spm_id_from=top_right_bar_window_dynamic.content.click&vd_source=46d50b5d646b50dcb2a208d394 ......
设计模式 模式 spring

老杜 JavaWeb 讲解(九) ——模板方法设计模式、HttpServlet源码分析

## (十一)模板方法设计模式、HttpServlet源码分析 **对应视频:** > [20-HttpServlet源码分析及web欢迎页](https://www.bilibili.com/video/BV1Z3411C7NZ/?p=21&vd_source=d0ace4d790d5d2f0d4 ......

《设计模式的运用》使用策略模式+工厂模式优化代码中的if else

# 使用策略模式优化if else 有这样一段逻辑 ``` function{ for{ if() if() if( if( ) ) ... } } ``` 公司有的祖传的代码,是一段规则校验,校验的越多,每一个请求都会进来校验,加上后来的开发人员也不注意,每次多加校验就多加一个if,只要命中就在i ......
模式 设计模式 工厂 策略 代码

重温设计模式 --- 组合模式

## 引言 **组合模式**是一种结构型设计模式,它允许你将对象组合成树形结构来表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性,因为它们都具有相同的接口。 组合模式由三个要素组成: 1. **抽象组件(Component)**:它定义了叶子节点和组合节点的公共接口 ......
模式 设计模式

重温设计模式 --- 桥接模式

## 引言 **桥接模式**是一种结构型设计模式,它可以将一个大类或一组相关的类拆分成抽象和实现两个独立的层次结构,从而可以在两个层次结构中分别变化。桥接模式的核心思想是“尽可能将抽象部分和实现部分分离,使它们可以独立地变化”。这样可以使得系统更加灵活,易于扩展和维护。 在桥接模式中,有两个重要的角 ......
模式 设计模式

重温设计模式 --- 外观模式

## 引言 **外观模式**是一种结构型设计模式,它为客户端提供了一个简单的接口,使得客户端能够更容易地使用复杂的子系统。外观模式通过隐藏子系统的复杂性,简化了客户端的调用过程,同时也降低了客户端与子系统的耦合度。 外观模式的核心思想是将系统的各个组件和子系统封装在一个单独的类中,称为外观类。外观类 ......
模式 设计模式 外观

重温设计模式 --- 代理模式

## 引言 **代理模式**是一种结构型设计模式,它允许您提供一个代理来控制对某个对象的访问。在某些情况下,直接访问对象可能会带来一些问题,比如安全问题、性能问题等。代理模式就是为了解决这些问题而设计的。 在代理模式中,有三个核心角色:**抽象主题(Subject)**、 **真实主题(Real S ......
模式 设计模式

JAVA设计模式之装饰器模式

设计模式 设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式 ......
模式 设计模式 JAVA

重温设计模式 --- 装饰器模式

## 引言 **装饰器模式**是一种结构型设计模式,它允许在不改变原始对象的情况下,通过将其包装在一个装饰器对象中,来动态地添加额外的功能。 装饰器模式的核心思想是,将一个对象放在另一个对象的外面,以给原始对象添加新的行为。这个“另一个对象”就是装饰器(Decorator),它持有一个原始对象(Co ......
模式 设计模式

重温设计模式 --- 适配器模式

## 引言 **适配器模式**是一种结构型设计模式,用于将一个类的接口转换成另一个接口,以便于两个不兼容的类之间能够协同工作。适配器模式可以被认为是一个桥梁,它可以连接两个不同的接口,从而使得它们可以进行协同工作。 适配器模式通常在两个不兼容的类之间进行转换,这些类可能具有不同的接口,不同的数据类型 ......
模式 设计模式 适配器

重温设计模式 --- 原型模式

## 引言 **原型模式**是一种创建型设计模式,它允许我们创建一个对象的副本,而不需要显式地使用构造函数来创建一个新的对象。这种模式通常用于创建那些具有复杂创建过程或需要大量资源的对象。 在原型模式中,我们首先定义一个原型接口,该接口包含一个克隆方法。然后我们创建一个原型对象,该对象实现了原型接口 ......
模式 设计模式 原型

在WPF中判断是是否为设计时模式

方式一: using System.ComponentModel; private bool IsInDesignMode { get { return DesignerProperties.GetIsInDesignMode(this); } } 此方式适用于当前对象在设计器中查看,而且是Depe ......
模式 WPF

设计模式

# 设计模式 ## 七大原则 ### 开闭原则 一个软件实体,如类、模块和函数应该对扩展开放,对修改关闭。 ### 单一职责原则 一个类应该只有一个发生变化的原因。 ### 里氏替换原则 所有引用基类的地方必须能透明地使用其子类的对象。 ### 依赖倒置原则 1、上层模块不应该依赖底层模块,它们都应 ......
设计模式 模式

wpf在设计器模式利用模拟数据展现控件

使用Visual Studio 开发WPF应用程序时,控件显示需要的数据如果来路比较“苦难”,比如来自数据库,JSON文件,复杂计算等,这时候,如果想看到控件带有数据的展示效果,需要启动调试,这很麻烦。 我们可以在XAML中使用designtime语法给控件赋予模拟数据[MSDN教程](https: ......
控件 模式 数据 wpf

重温设计模式 --- 单例模式

## 引言 **单例模式**是一种创建型设计模式,它的主要目的是确保某个类在应用程序中只有一个实例,并且这个实例能够被全局访问。在许多情况下,单例模式是非常有用的,比如说当你需要创建一个全局的配置类或者日志类时,单例模式可以让你轻松地实现这些功能。 在实现单例模式时,有两种常见的方法,“懒汉式”和“ ......
模式 设计模式

0003_二十三种设计模式

## 设计模式 ### 二十三种设计模式 根据经典的《设计模式:可复用面向对象软件的基础》(Gang of Four)一书,共提出了23种常见的设计模式。这些设计模式分为三个分类: 1. 创建型模式(Creational Patterns):这些模式关注对象的创建机制,帮助解决对象的实例化过程。 - ......
设计模式 模式 0003

【设计模式】策略模式与简单工厂结合

# 策略模式 > 大话设计模式 ## 什么是策略模式(Strategy)? 它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。 策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用 ......
模式 设计模式 工厂 策略

重温设计模式 --- 建造者模式

## 引言 **建造者模式**是一种创建型设计模式,它可以将一个复杂对象的构建过程和表示分离,使得相同的构建过程可以创建不同的表示,以及不同的构建过程可以创建相同的表示 在实际的开发中,我们有时需要创建一些复杂的对象,例如包含多个组件和属性的对象,这时候如果直接在代码中创建对象,代码的可读性和可维护 ......
模式 设计模式

重温设计模式 --- 观察者模式

## 引言 **观察者模式**是一种行为型设计模式,它允许对象之间建立一种一对多的关系,使得当一个对象状态改变时,所有依赖它的对象都能够自动得到通知并更新自己的状态。该模式可以帮助我们实现松耦合的系统,以便更好地应对变化和扩展。 在观察者模式中,有两个角色:**观察者**和**被观察者**。被观察者 ......
模式 观察者 设计模式

重温设计模式 --- 工厂方法模式

## 引言 **工厂方法模式**是一种创建型设计模式,它定义了一个用于创建对象的接口,但是让子类决定将哪一个类实例化。换句话说,工厂方法模式让一个类的实例化延迟到其子类。 工厂方法模式有以下几个主要角色: - 抽象工厂(AbstractFactory):声明用于创建抽象产品的操作的接口。 - 工厂实 ......
模式 设计模式 工厂 方法

重温设计模式 --- 抽象工厂模式

## 引言 **抽象工厂模式**一种创建型设计模式,它提供了一种方式来封装一组具有相同主题的工厂,而不必指定它们具体的类。这样,客户端代码就可以使用抽象工厂来创建一组相关的对象,而不必关心实际创建的具体类。 抽象工厂模式有以下几个主要角色: - 抽象工厂(AbstractFactory):声明用于创 ......
模式 设计模式 工厂

代理设计模式

## 代理设计模式的作用 代理模式(Proxy Pattern)是指建立某一个对象的代理对象,并且由代理对象控制对原对象的引用。可以在目标对象的基础上,增强额外的功能操作,即扩展目标对象的功能. - 需求 项目经理:有一天早上项目经理突然对小张说,小张啊现在给你分配一个需求,之前小王开发的那个接口的 ......
设计模式 模式

面向对象、设计原则、设计模式、编程规范、重构五者的关系

最经典的设计模式书籍是GoF的《设计模式》,他的中文全称叫《设计模式:可复用面向对象软件的基础》,为什么他在标题中会特意提到“面向对象”呢? 面向对象 针对面向对象,我们需要掌握7点。 面向对象的四大特性:封装、抽象、继承、多态; 面向对象和面向过程编程的区别与联系; 面向对象分析、设计、编程; 接 ......
设计模式 对象 原则 模式

设计模式之类之间的关系和六大原则

1 类之间的关系 类与类之间的关系大概有6种,要看懂UML图,首先需要了解这几种关系。 1.1 继承关系 继承指的是一个类(称为子类,子接口)继承另外的一个类(成为父类,父接口)的功能,并可以增加它自己的新功能的能力。在UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父类,或者子接口 ......
设计模式 原则 之间 模式

C++ 设计模式之外观模式

设计模式之外观模式 外观模式主要是为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得该子系统更加容易使用。说白了就是一堆系统或类实现了些复杂的功能,然后为了方便使用,又新建了一个类把这些类实现的功能封装起来了。该模式不难理解。其UML图如下: 在Facade类提供了一堆调 ......
模式 设计模式 外观

C++ 设计模式之建造者模式

设计模式之建造者模式 建造者模式,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 其UML图如下: 简单理解就是Builder中定义了创建Product各个部分的接口。ConcreteBuilder中具体实现了创建Product中的各个部分的接口,就是具体的建造者。Dir ......
模式 设计模式

C++ 设计模式之抽象工厂模式

设计模式之抽象工厂模式 抽象工厂模式,提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。其UML图如下: 结合上图我们来理解一下抽象工厂模式的定义。提供一个创建一些列相关或相互依赖对象的接口,而无需指定它们具体的类。在上图中一系列相互依赖或相关的对象可以理解为ProductA,Pr ......
模式 设计模式 工厂

C++设计模式之观察者模式

设计模式之观察者模式 观察者模式定义了一种一对多的依赖关系,让多个观察者同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。其UML图如下: 在ConcretSubject内部有一个Observer的列表,当Subject的状态发生改变时,会通知列表内 ......
模式 观察者 设计模式

C++ 设计模式之模板方法模式

设计模式之模板方法模式 模板方法模式,定义一个操作中的算法的股价,而将一些步骤延迟到了子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。说白了就是有一个算法有很多部分,这个算法在基类中已经定义好了。而算法中的各个部分都写成各个成员函数了。然后在子类中可以覆盖这些成员函数 ......
模式 设计模式 模板 方法

JAVA设计模式之模板模式

设计模式 设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式 ......
模式 设计模式 模板 JAVA