.Net
文章平均质量分 87
思忖小下
it
展开
-
c#代码介绍23种设计模式_10组合模式
组合模式允许你将对象组合成树形结构来表现”部分-整体“的层次结构,使得客户以一致的方式处理单个对象以及对象的组合组合模式实现的最关键的地方是——简单对象和复合对象必须实现相同的接口。这就是组合模式能够将组合对象和简单对象进行一致处理的原因。原创 2024-09-27 21:36:52 · 532 阅读 · 0 评论 -
c#代码介绍23种设计模式_09装饰者模式
装饰者模式采用对象组合而非继承的方式实现了再运行时动态地扩展对象功能的能力,而且可以根据需要扩展多个功能,避免了单独使用继承带来的 ”灵活性差“和”多子类衍生问题“。同时它很好地符合面向对象设计原则中 ”优先使用对象组合而非继承“和”开放-封闭“原则原创 2024-09-26 20:46:34 · 892 阅读 · 0 评论 -
c#代码介绍23种设计模式_07适配器模式
在实际的开发过程中,由于应用环境的变化(例如使用语言的变化),我们需要的实现在新的环境中没有现存对象可以满足,但是其他环境却存在这样现存的对象。那么如果将“将现存的对象”在新的环境中进行调用呢?解决这个问题的办法就是我们本文要介绍的适配器模式——使得新环境中不需要去重复实现已经存在了的实现而很好地把现有对象(指原来环境中的现有对象)加入到新环境来使用原创 2024-09-23 21:57:15 · 842 阅读 · 0 评论 -
c#代码介绍23种设计模式_06原型模式
在软件系统中,当创建一个类的实例的过程很昂贵或很复杂,并且我们需要创建多个这样类的实例时,如果我们用new操作符去创建这样的类实例,这未免会增加创建类的复杂度和耗费更多的内存空间,因为这样在内存中分配了多个一样的类实例对象,是对对象实例中字段引用的对象也进行拷贝,如果一个对象有一个指向字符串的字段,并且我们对该对象进行了深拷贝的话,那么我们将创建一个对象和一个新的字符串,新的对象将引用新的字符串。例如,如果一个对象有一个指向字符串的字段,并且我们对该对象做了一个浅拷贝,那么这两个对象将引用同一个字符串,原创 2024-09-22 17:12:08 · 1182 阅读 · 0 评论 -
c#代码介绍23种设计模式_05建造者模式
建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式使得建造代码与表示代码的分离,可以使客户端不必知道产品内部组成的细节,从而降低了客户端与具体产品之间的耦合度。原创 2024-09-22 16:40:06 · 684 阅读 · 0 评论 -
c#代码介绍23种设计模式-08桥接模式
桥接模式即将抽象部分与实现部分脱耦,使它们可以独立变化。对于上面的问题中,抽象化也就是RemoteControl类,实现部分也就是On()、Off()、NextChannel()等这样的方法(即遥控器的实现),上面的设计中,抽象化和实现部分在一起,桥接模式的目的就是使两者分离,根据面向对象的封装变化的原则,我们可以把实现部分的变化(也就是遥控器功能的变化)封装到另外一个类中,这样的一个思路也就是桥接模式的实现。原创 2024-09-22 16:30:39 · 1233 阅读 · 0 评论 -
c#代码介绍23种设计模式_04抽象工厂模式
提供一个创建产品的接口来负责创建相关或依赖的对象,而不具体明确指定具体类抽象工厂允许客户使用抽象的接口来创建一组相关产品,而不需要知道或关心实际生产出的具体产品是什么。这样客户就可以从具体产品中被解耦。原创 2024-09-22 15:36:48 · 809 阅读 · 0 评论 -
c#代码介绍23种设计模式_03工厂模式
工厂方法模式通过面向对象编程中的多态性来将对象的创建延迟到具体工厂中,从而解决了简单工厂模式中存在的问题,也很好地符合了开放封闭原则(即对扩展开发,对修改封闭)原创 2024-09-22 15:26:38 · 960 阅读 · 0 评论 -
c#代码介绍23种设计模式_02简单工厂模式
在设计模式中,简单工厂模式我们也可以理解为负责生产对象的一个类。我们平常编程中,当使用"new"关键字创建一个对象时,此时该类就依赖与这个对象,也就是他们之间的耦合度高,当需求变化时,我们就不得不去修改此类的源码,此时我们可以运用面向对象(OO)的很重要的原则去解决这一的问题,该原则就是——封装改变,既然要封装改变,自然也就要找到改变的代码,然后把改变的代码用类来封装,这样的一种思路也就是我们简单工厂模式的实现方式。原创 2024-09-21 22:39:54 · 855 阅读 · 0 评论 -
c#代码介绍23种设计模式_01单例模式
从单例模式的定义中我们可以看出——单例模式的使用自然是当我们的系统中某个对象只需要一个实例的情况,例如:操作系统中只能有一个任务管理器。原创 2024-09-21 22:30:11 · 451 阅读 · 0 评论 -
.Net 进程、应用程序域、上下文与线程之间的关系详解
它是进程中的基本执行单元,在进程入口执行的第一个线程被视为这个进程的主线程。一般不需要指定特定上下文的对象被称为上下文灵活对象(context-agile),建立此对象不需要特定的操作,只需要由CLR自行管理,一般这些对象都会被建立在默认上下文当中。在 System.Diagnostics 命名空间当中存在Process类,专门用于管理进程的开始、结束,访问进程中的模块,获取进程中的线程,设定进程的优先级别等。应用程序域是CLR中资源的边界,一般情况下,应用程序域中的对象不能被外界的对象所访问。原创 2024-09-15 22:21:05 · 577 阅读 · 0 评论