
笔记
文章平均质量分 56
Jacksdcnsdjk
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
迭代器模式
介绍迭代器是针对集合对象而产生的,对于 集合对象而言,必然涉及到集合元素的添加、删除等操作,同时肯定也支持遍历集合元素的操作,我们可以把遍历操作也放在集合对象中,但这样的话,集合对象就承担太多的责任了,面向对象中有一条设计原则是单一职责原则,所以我们要尽可能的分离这些职责,用不同的类去承担不同的责任。迭代器模式就是来承担遍历集合元素的职责。定义迭代器模式提供了一种方法顺序访问一个聚合对象(理解为集合对象)中各个元素,而又无需暴露该对象的内部表示,这样既可以做到不暴露集合的内部结构,又可以让外部代码透明转载 2021-08-03 19:54:48 · 358 阅读 · 0 评论 -
解释器模式
动机(Motivate):在软件构建过程中,如果某一特定领域的问题比较复杂,类似的模式不断重复出现,如果使用普通的编程方式来实现将面临非常频繁的变化。在这种情况下,将特定领域的问题表达为某种文法规则下的句子,然后构建一个解释器来解释这样的句子,从而达到解决问题的目的。意图(Intent):给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。结构图(Struct):生活中的例子:适用性:1.当有一个语言需要解释执行,并且你可将该语言中的句子表示为原创 2021-07-27 18:05:27 · 324 阅读 · 0 评论 -
备忘录模式
**备忘录(Memento)模式的定义:**在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模式。 备忘录模式是一种对象行为型模式,其主要优点如下。提供了一种可以恢复状态的机制。当用户需要时能够比较方便地将数据恢复到某个历史的状态。实现了内部状态的封装。除了创建它的发起人之外,其他对象都不能够访问这些状态信息。简化了发起人类。发起人不需要管理和保存其内部状态的各个备份,所有状态信息都保存在备忘录中,并由..转载 2021-07-20 19:24:23 · 326 阅读 · 0 评论 -
状态模式的定义与特点
**状态(State)模式的定义:**对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。状态模式是一种对象行为型模式,其主要优点如下。1.结构清晰,状态模式将与特定状态相关的行为局部化到一个状态中,并且将不同状态的行为分割开来,满足“单一职责原则”。2.将状态转换显示化,减少对象间的相互依赖。将不同的状态引入独立的对象中会使得状态转换变得更加明确,且减少对象间的相互依赖。3.状态类职责明确,有利于程序的扩展。通过定义新的子类很容易地增加新的状态原创 2021-07-13 19:54:05 · 1133 阅读 · 1 评论 -
C#责任链模式
一、引言在现实生活中,有很多请求并不是一个人说了就算的,例如面试时的工资,低于1万的薪水可能技术经理就可以决定了,但是1万~1万5的薪水可能技术经理就没这个权利批准,可能就需要请求技术总监的批准,所以在面试的完后,经常会有面试官说,你这个薪水我这边觉得你这技术可以拿这个薪水的,但是还需要技术总监的批准等的话。这个例子也就诠释了本文要介绍的内容。生活中的这个例子真是应用了责任链模式。二、责任链模式介绍2.1 责任链模式的定义从生活中的例子可以发现,某个请求可能需要几个人的审批,即使技术经理审批完了,还原创 2021-07-06 21:03:38 · 256 阅读 · 1 评论 -
命令模式介绍
命令模式的定义与特点命令(Command)模式的定义如下:将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行储存、传递、调用、增加与管理。命令模式的主要优点如下。1.通过引入中间件(抽象接口)降低系统的耦合度。2.扩展性良好,增加或删除命令非常方便。采用命令模式增加与删除命令不会影响其他类,且满足“开闭原则”。3.可以实现宏命令。命令模式可以与组合模式结合,将多个命令装配成一个组合命令,即宏命令。4.方便实现 Undo 和原创 2021-06-29 19:23:58 · 377 阅读 · 0 评论 -
visual studio 2010卸载
visual studio 2010卸载教程在网站上寻找了很多卸载方法,例如软件管家之类的,都尝试过,其实卸载的很麻烦,还要通过手动一个一个的去删除visual studio 2010的相关组件。现在发现还是去控制面板卸载比较方便。打开控制面板-卸载程序,找到visual studio 2010的主程序包,右键卸载。会弹出打开visual studio 2010的安装界面,选择卸载或者重装,这时点击卸载即可,等待几分钟,就可以卸载所有相关组件。卸载完成是会显示以下图片就可以了。如果安装呢了软件管家的卸载原创 2021-06-21 14:56:13 · 5427 阅读 · 2 评论 -
C#策略模式
定义定义了算法族,分别封装起来,让他们之间可以相互替换,此模式的算法可以独立于使用它的客户。可以将算法族理解为同一个算法的不同变体,典型的策略模式其实就是客户可以使用同一个算法的不同变体,使用的过程中可以更换。适用性以下情况可以使用策略模式需要使用一个算法的不同变体,如本文的游戏,Hero会使用不同的行为。许多相关的类仅仅行为有异,策略模式提供了一种用多个行为中的一个行为配置一个类的方法上面对策略模式的描述说的可能比较抽象,下面我们还是结合游戏分析一下策略模式。实例class Pr原创 2021-06-16 09:49:48 · 635 阅读 · 0 评论 -
405. 数字转换为十六进制数
给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。注意:十六进制中所有字母(a-f)都必须是小写。十六进制字符串中不能包含多余的前导零。如果要转化的数为0,那么以单个字符’0’来表示;对于其他情况,十六进制字符串中的第一个字符将不会是0字符。给定的数确保在32位有符号整数范围内。不能使用任何由库提供的将数字直接转换或格式化为十六进制的方法。示例 1:输入:26输出:“1a”示例 2:输入:-1输出:“ffffffff”public原创 2021-06-08 17:41:19 · 301 阅读 · 0 评论 -
dataGridView获得选中单元格行索引
获得选中单元格行索引(1)int _tempIndex =-1;private void dgv_TemplateMsg_CellClick(object sender, DataGridViewCellEventArgs e){_tempIndex = dgv_TemplateMsg.SelectedCells[0].RowIndex;}(2)int _tempIndex =-1;int _ColumnIndex=-1;private void dgv_TemplateMsg_C原创 2021-05-31 15:24:57 · 1214 阅读 · 0 评论 -
组合模式
一.定义:将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得对单个对象和组合对象的使用具有一致性。二.UML类图:三 例子class Program{static void Main(string[] args){ComponentB componentB = new ComponentB();componentB.Add(new ComponentA()); ComponentB component = new ComponentB(); co原创 2021-05-24 20:27:03 · 141 阅读 · 0 评论 -
Trim(),TrimEnd(),TrimStart() 用法
1.C#中Trim()、TrimStart()、TrimEnd()的用法:这三个方法用于删除字符串头尾出现的某些字符。Trim()删除字符串头部及尾部出现的空格,删除的过程为从外到内,直到碰到一个非空格的字符为止,所以不管前后有多少个连续的空格都会被删除掉。TrimStart()只删除字符串的头部的空格。TrimEnd()只删除字符串尾部的空格。 如果这三个函数带上字符型数组的参数,则是删除字符型数组中出现的任意字符。如Trim("abcd".ToCharArray())就是删除字符串头部及尾部出现的原创 2021-05-19 09:51:00 · 776 阅读 · 0 评论 -
代理模式
1、定义:为其他对象提供一种代理以控制对这个对象的访问。(中介)2.使用场景Windows快捷方式、VPN、防火墙3.目的(1)在不改变原有代码的基础上,对原有类加以控制(2)访问由于某种原因不能直接访问或者直接访问困难的第三方组件或中间件和适配器比较:1.适配器模式是接口转换2.代理模式是间接访问3.适配器面向不能一起工作两个类,代理模式面向可以一起工作两个类4.具体例子代理模式:为另一个对象提供一个替身或占位符以访问这个对象场景描述:我想要查我的档案记录,但是我不能直接去档案原创 2021-05-18 20:18:13 · 152 阅读 · 0 评论