摘要:(根据MSDN Webcast 相关课程整理) 直接与间接: 对于复杂的系统,我们常常在使用时添加一个中间层,从而屏蔽一些不常用的功能,或简化一些常用功能等,从而达到用简单灵活的方法满足特定的需要的...
阅读全文
随笔分类 - C#
摘要:(根据MSDN Webcast 相关课程整理) 面向对象很好的解决了系统抽象的问题,同是不会损害系统的性能。但是在某些特殊应用中,由于对象的数量太大,采用面向对象会给系统带来难以承受的内在开销。 比如...
阅读全文
摘要:(根据MSDN Webcast相关课程整理) 先看以下实例: 左边的方案中客户调用程序与子系统内部的具体实现类具有较多的耦合与交互。显然是不理想的设计方案。随着外部客户程序和各子系统的演化,这种过多的...
阅读全文
摘要:(根据MSDN Webcast相关课程整理) 假设场景:游戏中的坦克不仅具有类型的不同,可能同一种坦克也会有不同,如我们可能会希望为某种类型的坦克,如T50,增加(扩展)一种或多种新功能。如果增加红外...
阅读全文
摘要:(根据MSDN Webcast相关课程整理) 由俄罗斯套娃讲起。娃娃里又包含另一个娃娃,最后那个不包含任何娃娃。 组合模式,采用树型结构来实现普遍存在的对象容器,将本原一对多的复杂的关系,转换成一对一...
阅读全文
摘要:根据MSDN Webcast相关课程整理) GoF:将抽象部分与实现部分分离,使它们都可以独立地变化。 如下图所示: 显然,当实现细节b易变时,我们通常考虑采用原型模式来构造系统。然而,当抽象B由于...
阅读全文
摘要:根据MSDN Webcast相关课程整理) 适配:在不改变原有实现的基本上,将原先不兼容的接口转换成兼容的接口。 GoF:将一个类的接口转换成客户需要的另一个接口,便得原来由于接口不兼容而不能一起工作...
阅读全文
摘要:(根据MSDN Webcast相关课程整理) 耦合关系直接决定软件面对变化时的行为。 紧耦合时,当一个模块变化时,相关模块都要随之更改;依赖关系复杂 松耦合时,模块更容易被替换或更改,而其他相关模块...
阅读全文
摘要:(根据MSDN Webcast相关课程整理) 依赖关系倒置原则: 抽象不应该依赖于实现细节,实现细节应该依赖于抽象。实现细节往往易变。 抽象A直接依赖于实现细节b: 抽象A依赖于抽象B,实现细节b依赖于抽象B: 原型设计模式:经常面临某些结构复杂对象的构建工作,由于需求的变化,这些对象也面临剧烈变化。我们需要隔离这些易变对象,从而使得对象的变化时而不影响客户程序对这些对象的调用。 ...
阅读全文
摘要:(根据MSDN Webcast相关课程整理) 生成器模式的缘起: 一个类中主结构(将各个成员组合在一起的构建方法)基本稳定,但内部的几个组成部分可能经常存在变化。 GOF:将一个复杂对象的构建与其表示相分开,使得同样的构建过程可以创建不同的表示。 构成主类的某引动部分成员PartA和B是常变化的,而创建器的算法方式不变,客户程序通过Director的Construct方法,传入不同的生成器,从而...
阅读全文
摘要:(根据MSDN Webcast相关课程整理) new的问题:实现依赖,不能应对具体实例化类型的变化。(当实例对象发生变化时,无法满足需求) 例: 当Road发生容易发生变化时,如有可能变成MudRoad时,需要修改系统中所有new 到Road的地方。 解决思路: 封闭变化点——哪儿变化封闭哪儿;如果new的类型比较稳定,基本没有变化时,就不需要封装啦。 创建的对象容易发生变化,因此就要封装对象创...
阅读全文
摘要:模式分类:
从目的来看:
创建型(Creational):负责对象的创建
结构型(Structural):处理类与对象间的组合
行为型(Behavioral):类与对象交互中的职责分配
从范围来看:
类模式:处理类与子类的静态关系
对象模式:处理对象间的动态关系
阅读全文
摘要:(根据MSDN Webcast相关课程整理) 模式:提供重复发生的问题的解决方法的核心。 设计模式:软件设计过程中某一类问题的一般性解决方案。 面向对象设计模式:面向对象设计过程中、特定场景下,类与相...
阅读全文
摘要:“服务器已拒绝客户端凭据”该问题主要出现在VS2005及以后的版本。 该问题主要是安全设置问题,出现在“向信道服务注册信道”的时候。在VS2005以前的版本,“向信道服务注册信道”只需要System....
阅读全文
摘要:一,Remoting技术简介: .Net Remoting 技术是.NET平台上实现分布式对象系统的框架,它可以用于访问另一个应用程序域(也可以是另一个服务器)中的对象,可以是进程间的,也可以是不同...
阅读全文
摘要:C#异步调用四大方法是什么呢?他们各自的作用是什么呢?那么本文就向你介绍C#异步调用四大方法的具体内容。
阅读全文
摘要:C#中,Thread类有一个IsBackground 的属性.MSDN上对它的解释是:获取或设置一个值,该值指示某个线程是否为后台线程。个人感觉这样的解释等于没有解释. .Net中的线程,可以分为后台...
阅读全文
摘要:MS的CMD命令行是一种重要的操作界面,一些在C#中不那么方便完成的功能,在CMD中几个简单的命令或许就可以轻松搞定,如果能在C#中能完成CMD窗口的功能,那一定可以使我们的程序简便不少。 下面介绍一...
阅读全文
摘要:简介 虽然在现实世界中的克隆课题是有争议的, 在.NET世界使用它却足够安全, 难道不是吗? 为实现一个类你究竟有多少次要实现ICloneable接口, 而且每一次都写相同的代码,或为每个类写特定...
阅读全文
摘要:大家在实际工作学习C#的时候,可能会问:为什么我们要为一些已经存在的功能(比如Windows中的一些功能,C++中已经编写好的一些方法)要重新编写代码,C#有没有方法可以直接都用这些原本已经存在的功能...
阅读全文

浙公网安备 33010602011771号