刷新
C#设计模式之观察者模式

博主头像 前言 观察者(Observer)模式也称发布-订阅(Publish-Subscribe)模式,定义了对象间一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 观察者模式的图解如下所示: Subject(目标): 目标知道它的观察者。可以有任意多个观察者观察同 ...

设计模式一

博主头像 简介 设计模式是一种最佳实践,是长期起来总结的解决一系列问题的一种套路。 一般针对面向对象语言而言,从大型软件架构出发,便于升级和维护的软件设计思想,强调降低依赖耦合 目的:代码重用和工程化 类型 创建型:创建对象的同时隐藏创建的业务逻辑 工厂模式、单例模式、建造者模式、原型模式 结构型:将现有的类 ...

设计模式(十九)观察者

博主头像 一、定义 定义对象之间的一种一对多依赖关系,使得当每一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。观察者模式是一种行为型模式,又称为发布-订阅(Publish-Subscribe)模式、模型-视图(Model-View)模式、源-监听器(Source-Listener)模式或从属者( ...

C#设计模式之策略模式

博主头像 策略模式在设计模式中属于对象行为型模式,它的意图是定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。策略模式使得算法可独立于使用它的客户而变化。 ...

学一点关于JVM类加载的知识

博主头像 要研究类加载过程,我们先要知道关于 Java 处理代码的流程是怎么样的。 第一步:编写源代码 这一步是我们最熟悉的,就是我们在 idea 上写的业务代码,生成 Example.java 文件。 public class Example { public static void main(String ...

设计模式(十八)备忘录

博主头像 一、定义 在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样就可以在以后将对象恢复到原先保存的状态。备忘录模式是一种对象行为型模式,其别名为标记(Token)模式。 二、描述 备忘录模式的核心在于备忘录类以及用于管理备忘录的负责人类的设计,包含以下三个角色: 1、Orig ...

设计模式(十七)中介者

博主头像 一、定义 义一个对象来封装一系列的对象交互。中介者模式使各对象不需要显示地相互引用,从而使其耦合松散,而且可以让你相对独立地改变它们之间的交互。中介者模式又称为调停模式,它是一种对象说行为型模式。 二、描述 在中介者模式中,引入了用于协调其他对象/类之间的相互调用的中介者类,为了让系统具有更好的灵活 ...

Pipeline模式应用

博主头像 本文重点为管道模式的抽象与应用,上述示例仅为个人理解。实际应用中,此案例长于应对各种规则冗杂的业务场景,便于规则编排。 ...

设计模式(十六)迭代器

博主头像 一、定义 提供一种方法顺序访问一个聚合对象中的各个元素,且不用暴露该对象的内部表示。迭代器模式是一种对象行为型模式,又称为游标(Cursor)模式。 二、描述 在软件系统中,聚合对象拥有两个职责:一是存储数据,二是遍历数据。从依赖性来看,前者是聚合对象的基本职责,而后者既是可变化的,又是可分离的。因 ...

设计模式(十五)解释器

博主头像 一、定义 定义一个语言的文法,并且建立一个解释器来解释该语言中的句子,这里的“语言”是指使用规定格式和语法的代码。解释器模式是一种行为型模式。 二、描述 解释器模式是一种使用频率相对较低但学习难度较大的设计模式,它主要用于描述如何使用面向对象语言构成一个简单的语言解释器,包含以下四个角色: 1、Ab ...

写代码不用"if"行不行,曾经的反 if 运动

博主头像 如果在IT行业的时间够长的话,可能还记得大约10几年前,设计模式风靡一时的时候,有过一段反 "if" 的运动。 所谓的反"if"运动,其实是夸大了"if"语句带来的问题,比如当时提出的问题有: 代码不好维护,特别是if或者else中的代码比较多的时候 if和 else if分支太多的时候,代码难以阅 ...

c#中命令模式详解

基本介绍: 命令模式,顾名思义就是将命令抽象化,然后将请求者和接收者通过命令进行绑定。 而命令的请求者只管下达命令,命令的接收者只管执行命令。 从而实现了解耦,请求者和接受者二者相对独立。 单独理解起来比较困难,咱们还是通过具体实例来说明吧。 举例说明: 生活中遥控控制电器就是命令模式,比如智能开关 ...

c#中责任链模式详解

基本介绍: “责任链”顾名思义,是指一个需要负责处理请求的链条。 每个链条节点都是一个单独的责任者,由责任者自己决定是否处理请求或交给下一个节点。 在设计模式中的解释则为:为请求创建了一个接收者对象的链。适用于有多个对象可以处理同一个请求,但具体由哪个对象处理则在运行时动态决定的情况。 俗话说起来就 ...

c#中代理模式详解

基本介绍: “代理”顾名思义指以他人的名义,在授权范围内进行处理事情的意思。 在编程语言中的则解释为:为其他对象提供一种代理以控制对这个对象的访问。 从释义上不难解读,代理本质就是一个中介,客户通过中介来访问原对象。本质就是在原对象基础上包了一层封装。 那么问题来了,为什么不直接使用原对象,反而多此 ...

设计模式(十二)代理

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

c#桥接模式详解

基础介绍: 将抽象部分与它的实现部分分离,使它们都可以独立地变化。适用于不希望在抽象和实现部分之间有固定的绑定关系的情况,或者类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充的情况。 将抽象部分与实现部分分离,使它们都可以独立地变化。 其实两个都是抽象的部分,更准确的说,是将一个事物中多个维 ...

c#组合模式详解

一、基础介绍: 组合模式用于表示部分-整体的层次结构。适用于希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象的情况。 顾名思义,什么叫部分-整体,比如常见的前端UI,一个DIV标签中可以存在多个A标签、P标签、DIV标签等等。 相较于DIV这个容器整体而言,其中所含的A标签 ...

c#装饰器模式详解

一、基础介绍: 动态地给一个对象添加一些额外的职责。适用于需要扩展一个类的功能,或给一个类添加多个变化的情况。 装饰器,顾名思义就是在原有基础上添加一些功能。 大家都只知道如果想单纯的给原有类增加一些功能,可以直接继续该类生成一个子类就可以。 举个例子,如果现在有个手机类,想给手机贴膜,传统的做法就 ...

c#中适配器模式详解

一、基础介绍: 想象这样一个场景,原项目中接口返回的数据是XML格式的数据,但现在来了一个新客户,它期望接口返回的数据类型为json格式的。 想要实现要么就是改原有接口,但这样就违反了开闭原则,容易出现未知bug,影响到老客户的正常使用。 而如果写一个适配器类也就是转换类(第三方类),将原本返回的X ...

<1···3456>