c#基础
行藏在我
这个作者很懒,什么都没留下…
展开
-
C#堆栈及内存分配
C#堆栈及内存分配 堆栈在计算机领域,堆栈是一个不容忽视的概念,但是很多人甚至是计算机专业的人也没有明确堆栈其实是两种数据结构。要点:堆:顺序随意栈:先进后出堆和栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部转载 2013-03-28 21:26:25 · 1098 阅读 · 0 评论 -
23种设计模式-3.建造者模式(Builder)
Builder模式的缘起: 假设创建游戏中的一个房屋House设施,该房屋的构建由几部分组成,且各个部分富于变化。如果使用最直观的设计方法,每一个房屋部分的变化,都将导致房屋构建的重新修正.....动机(Motivation): 在软件系统中,有时候面临一个"复杂对象"的创建工作,其通常由各个部分的子对象用一定算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的转载 2013-03-31 10:18:11 · 407 阅读 · 0 评论 -
23种设计模式-2.抽象工厂模式(Abstract Factory)
常规的对象创建方法://创建一个Road对象Road road =new Road();new 的问题: 实现依赖,不能应对“具体实例化类型”的变化。解决思路: 封装变化点-----哪里变化,封装哪里 潜台词: 如果没有变化,当然不需要额外的封装!工厂模式的缘起 变化点在“对象创建”,因此就封装“对象创建” 面向接口编程转载 2013-03-31 10:16:12 · 335 阅读 · 0 评论 -
23种设计模式-4.工厂方法模式(Factory Method)
耦合关系: 动机(Motivation): 在软件系统中,由于需求的变化,"这个对象的具体实现"经常面临着剧烈的变化,但它却有比较稳定的接口。 如何应对这种变化呢?提供一种封装机制来隔离出"这个易变对象"的变化,从而保持系统中"其它依赖的对象"不随需求的变化而变化。意图(Intent): 定义一个用户创建对象的接口,让子类决定实例哪一个类。Fa转载 2013-03-31 10:19:51 · 423 阅读 · 0 评论 -
23种设计模式-7.装饰模式(Decorator Pattern)
子类复子类,子类何其多 假如我们需要为游戏中开发一种坦克,除了各种不同型号的坦克外,我们还希望在不同场合中为其增加以下一种或多种功能;比如红外线夜视功能,比如水陆两栖功能,比如卫星定位功能等等。按类继承的作法如下: 1 //抽象坦克2 public abstract class Tank3 {4 public abstract voi转载 2013-03-31 10:26:46 · 491 阅读 · 0 评论 -
23种设计模式-6.桥接模式(Bridge Pattern)
动机(Motivate): 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?意图(Intent): 将抽象部分与实现部分分离,使它们都可以独立的变化。 ----转载 2013-03-31 10:22:05 · 361 阅读 · 0 评论 -
面向对象的三大特征-封装,继承,多态
一,封装:我们可以把世界上任何一个东西都看作为一个对象,那么我们这里以人为例,一个人就肯定是一个对象了。那么封装是什么呢?封装就是这个人要完成一件事情,他所需要的任何工具都带在了自己的身上,所需要的技术也都装在了自己的脑子里了。不需要借助于别人的力量就能完成这一件事情。这个有什么好处呢?好处就是如果我要吩咐这个人去完成一件事情,我不需要知道他是怎么完成的,也不需要协助他去完成,只要知道转载 2013-03-31 11:55:52 · 497 阅读 · 0 评论 -
23种设计模式-1.单件模式(Singleton Pattern)
动机(Motivation): 在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例,才能确保它们的逻辑正确性、以及良好的效率。 如何绕过常规的构造器,提供一种机制来保证一个类只创建一个实例? 这应该是类设计者的责任,而不是类使用者的责任。结构图: 意图: 保证一个类仅有一个实例,并提供一个访问它转载 2013-03-31 10:12:15 · 393 阅读 · 0 评论 -
23种设计模式-5.适配器模式(Adapter Pattern)
适配(转换)的概念无处不在......适配,即在不改变原有实现的基础上,将原先不兼容的接口转换为兼容的接口。例如:二转换为三箱插头,将高电压转换为低电压等。 动机(Motivate): 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。 那么如何应对这种“迁移的变化”?如何既能利转载 2013-03-31 10:20:50 · 324 阅读 · 0 评论 -
23种设计模式-9.外观模式(Facade Pattern)
动机(Motivate): 在软件开发系统中,客户程序经常会与复杂系统的内部子系统之间产生耦合,而导致客户程序随着子系统的变化而变化。那么如何简化客户程序与子系统之间的交互接口?如何将复杂系统的内部子系统与客户程序之间的依赖解耦?意图(Intent): 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。转载 2013-03-31 10:29:36 · 371 阅读 · 0 评论 -
23种设计模式-8.组合模式(Composite Pattern)
动机(Motivate): 组合模式有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。意图(Intent): 将对象组合成树形结构以表示“部分-整体”的层次结构。Composite模式使得用户对单个对象和组合对象的使用具有一致性。转载 2013-03-31 10:28:32 · 389 阅读 · 0 评论 -
MVVM模式
MVVM Model(模型)-View(视图)-ViewModel(视图模型)Model通过INotifychanged接口,解决Model到ViewModel的数据传导问题,使model独立于viewmodel.view通过ICommand 接口,解决view中的数据绑定,使viewmodel独立于view。通过实现 Mediator模式(中介者模式)完成模型与模型之间的交互,并原创 2013-03-29 11:30:25 · 679 阅读 · 0 评论 -
23种设计模式-10.中介者模式(Mediator Pattern)
中介者模式(Mediator Pattern) 依赖关系的转化: 动机(Motivate): 在软件构建过程中,经常会出现多个对象互相关联交互的情况,对象之间常常会维持一种复杂的引用关系,如果遇到一些需求的更改,这种直接的引用关系将面临不断的变化。 在这种情况下,我们可使用一个“中介对象”来管理对象间的关联关系,避免相互交互的对象之间的紧转载 2013-04-05 10:41:23 · 491 阅读 · 0 评论