随笔分类 -  C#

1
摘要:定义: 模板方法模式(TemplateMethod Pattern) :定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板该当使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 模板方法模式参与者 AbstractClass:实现了一个模板方法,定义了算法的骨架,具体子类将重定 阅读全文
posted @ 2019-02-26 10:49 黄厚镇 阅读(163) 评论(1) 推荐(0) 编辑
摘要:定义: 解释器模式(Interpreter Pattern) :定义语言的文法,并且建立一个解释器来解释该语言中的句子,这里的“语言”意思是使用规定格式和语法的代码,它是一种类行为型模式。 解释器模式参与者 Context:包含解释器之外的一些全局信息。 AbstractExpression:抽象表 阅读全文
posted @ 2019-02-25 15:28 黄厚镇 阅读(157) 评论(0) 推荐(0) 编辑
摘要:定义: 代理模式(Proxy Pattern) :给某一个对象提供一个代理,并由代理对象控制对原对象的引用。代理模式的英 文叫做Proxy或Surrogate,它是一种对象结构型模式。 代理模式参与者 Subject:定义了RealSubject和Proxy的共用接口,这样就在任何使用RealSub 阅读全文
posted @ 2019-02-22 11:23 黄厚镇 阅读(131) 评论(0) 推荐(0) 编辑
摘要:定义: 享元模式(Flyweight Pattern):运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。由于享元模式要求能够共享的对象必须是细粒度对象,因此它又称为轻量级模式,它是一种对象结构型模式。 享元模式参与者 Fly 阅读全文
posted @ 2019-02-21 16:24 黄厚镇 阅读(170) 评论(0) 推荐(0) 编辑
摘要:定义: 外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式。 外观模式参与者 Facade:外观类,知道 阅读全文
posted @ 2019-02-19 23:03 黄厚镇 阅读(183) 评论(0) 推荐(0) 编辑
摘要:定义: 装饰模式(Decorator Pattern) :动态地给一个对象增加一些额外的职责(Responsibility),就增加对象功能来说,装饰模式比生成子类实现更为灵活。其别名也可以称为包装器(Wrapper),与适配器模式的别名相同,但它们适用于不同的场合。根据翻译的不同,装饰模式也有人称 阅读全文
posted @ 2019-02-18 16:02 黄厚镇 阅读(99) 评论(0) 推荐(0) 编辑
摘要:定义: 组合模式(Composite Pattern):将对象组合成树形结构以表示“部分整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 组合模式参与者 Component:组合中对象的抽象和接口。 Leaf:在组合中表示叶节点对象,叶节点没有子节点。 Composite:在 阅读全文
posted @ 2019-02-17 22:07 黄厚镇 阅读(209) 评论(0) 推荐(0) 编辑
摘要:定义: 桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。 桥接模式参与者 Abstraction:抽象。 RefinedAbstraction:被 阅读全文
posted @ 2019-02-17 01:32 黄厚镇 阅读(157) 评论(0) 推荐(0) 编辑
摘要:定义: 适配器模式(Adapter Pattern) :将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。 适配器模式参与者 Target:客户(Client)所期待的接口。 阅读全文
posted @ 2019-02-15 22:43 黄厚镇 阅读(211) 评论(0) 推荐(0) 编辑
摘要:造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式属于对象创建型模式。根据中文翻译的不同, 阅读全文
posted @ 2019-02-14 17:42 黄厚镇 阅读(121) 评论(0) 推荐(0) 编辑
摘要:原型模式是一种创建型设计模式,Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节。工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。 接下来我们就以简历为例,当我们要面试时,通常会通过打印机将 阅读全文
posted @ 2019-02-14 15:12 黄厚镇 阅读(193) 评论(0) 推荐(0) 编辑
摘要:抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。根据里氏替换原则,任何接受父类型的地方,都应当能够接受子类型。因此,实际上 阅读全文
posted @ 2019-02-13 11:53 黄厚镇 阅读(161) 评论(0) 推荐(0) 编辑
摘要:工厂方法模式(Factory Method)是一种常用的类创建型设计模式,此模式的核心精神是封装类中不变的部分,提取其中个性化善变的部分为独立类,通过依赖注入以达到解耦、复用和方便后期维护拓展的目的。它的核心结构有四个角色,分别是抽象工厂;具体工厂;抽象产品;具体产品 通过工厂方法来解决简单工厂带来 阅读全文
posted @ 2019-02-12 14:45 黄厚镇 阅读(150) 评论(0) 推荐(0) 编辑
摘要:简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。 就以之前玩过的一个游 阅读全文
posted @ 2019-02-01 16:11 黄厚镇 阅读(157) 评论(0) 推荐(0) 编辑
摘要:单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的一个类只有一个实例。即一个类只有一个对象实例。 在我们平常的开发中,我们需要一些辅助类,比如Redis辅助类,一般把一些初始化的工作放在构造函数中,然后写一些方法来完成Redis 阅读全文
posted @ 2019-01-31 19:30 黄厚镇 阅读(168) 评论(0) 推荐(0) 编辑
摘要:一、反射是什么 二、通过反射获取信息 在C#程序中,我们可以用 System.Reflection 命名空间下的 Assembly 类来加载dll文件,从而来获取里面的信息,代码如下: 三、创建对象 上面我们可以获取到dll中的信息,接下来我们就来使用一些信息来创建对象,来调用对象里的方法。 四、调 阅读全文
posted @ 2018-04-12 22:27 黄厚镇 阅读(577) 评论(0) 推荐(0) 编辑
摘要:前面我们学习了委托,那么委托与Lambda表达式之间又有什么关系呢? 一、Lambda表达式 我们来看一段代码: 上面一段代码是用委托的形式表现的。接下来我们用Lambda表达看看是怎样的。 这两段代码的输出结果是一模一样的。 那么从第一段变成第二段到底是怎样一个过程呢?接下来我们来看看: 1、将具 阅读全文
posted @ 2018-04-06 09:41 黄厚镇 阅读(537) 评论(0) 推荐(0) 编辑
摘要:前面一章学习了委托以及多播委托,接下来我们来学习下委托事件。 在学习委托事件的前提下,得知道什么是观察者模式。 首先,我们来模拟一个场景:例如,当一只狗汪汪汪叫的时候,baby被吓哭了,刚好要偷东西的小偷被吓跑了。 我们一惯的思维是:创建三个类,分别写一个方法表示他们的动作,当狗叫的时候,分别调用。 阅读全文
posted @ 2018-04-05 10:19 黄厚镇 阅读(434) 评论(0) 推荐(0) 编辑
摘要:一、委托的概念 在我们学习委托之前,我们来了解下,什么是委托呢? 官方概念:委托是一种安全地封装方法的类型,它与 C 和 C++ 中的函数指针类似。与 C 中的函数指针不同,委托是面向对象的、类型安全的和保险的。委托的类型由委托的名称定义。 很多初学者都看不懂官方的概念,一脸懵逼。 举个例子吧:有几 阅读全文
posted @ 2018-04-04 10:18 黄厚镇 阅读(3505) 评论(1) 推荐(0) 编辑
摘要:这篇文章主要来讲讲c#中的泛型,因为泛型在c#中有很重要的位置,对于写出高可读性,高性能的代码有着关键的作用。 一、什么是泛型? 泛型是 2.0 版 C# 语言和公共语言运行库 (CLR) 中的一个非常重要的新功能。 我们在编程程序时,经常会遇到功能非常相似的模块,只是它们处理的数据不一样。但我们没 阅读全文
posted @ 2017-11-12 13:14 黄厚镇 阅读(44930) 评论(6) 推荐(10) 编辑

1