摘要: 模板模式——定义一个操作中算法的骨架,而降一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构既可以重定义该算法的某些特定步骤。 模板模式时为了解决避免子类去重复一项操作而设计的一种模式,假如自己都有一个方法去现实一个操作,并且在子类创建对象时重复进行该操作,那么可以将该操作给父类,让父类去完成这些操作,统一输出。 它通过把不变行为搬移到超类,去除子类中的重复代码,提供了一个很好的代码复用平台,下面是具体的实现方式。1.Template类,模板类,定义了一些由子类去实现的抽象方法,并且让子类实现了该方法后再统一的模板方法里去执行 1 /// <summary> 2 /// 阅读全文
posted @ 2013-05-25 17:23 Kitten Zhang 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 原型模式——用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 原型模式其实就是对.NET中拷贝的一个应用模式,拷贝表面意思就是将对象拷贝一份,由于.NET中有引用类型和值类型两种类型,所以也分为浅拷贝和深拷贝这两种概念。 先说下浅拷贝吧,在.NET中,引用类型会在创建时内存空间给动态分配一个内存。典型的引用类型就是创建一个对象,这个对象就是引用类型。当我们先实例化一个对象时,内存空间开辟一个空间存放这个对象。当再创建一个同类型的对象时,把先前创建的对象赋值给后创建的,也就是没执行new的操作,这是新创建的对象不会新开辟一个内存空间,而是把新对象指向原来对象的内存空间。这... 阅读全文
posted @ 2013-05-25 16:07 Kitten Zhang 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 工厂模式——定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 工厂模式和简单工厂模式同属于工厂类型的模式,都是以一个工厂生产对象为目标,降低耦合。要说区别,就是在创建产品对象的时候的方式不同。简单工厂模式工厂里面还是存在一些耦合的,当需要创建新的产品时,还是需要去修改这个工厂类的。而工厂模式由子类去创建产品,不需要改工厂,只需添加一个工厂,再一次的降低的耦合性。相应的,也带来了代码量的增加。 下面还是以计算器为例子,展示下工厂模式的应用。1.Operation类,于简单工厂无异,还是作为一个具体实现类的父类 1 /// <summary> 阅读全文
posted @ 2013-05-25 09:29 Kitten Zhang 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 代理模式——为其他对象提供一种代理以控制对这个对象的访问。 代理模式一个应用很广泛的模式,它是建立在对象和引用对象之间,当需要访问一个对象时,可能会因为一些特殊原因造成一些困难,这样就会用到代理模式。1.Subject类,这个是一个抽象接口,代理和对象的公共接口,这样任何要对对象进行访问的地方,就可以访问代理了。 1 /// <summary> 2 /// 公共接口 3 /// </summary> 4 public abstract class Subject 5 { 6 /// <summary> 7 /// 定义了一个抽象方法 8 /// </s 阅读全文
posted @ 2013-05-23 22:28 Kitten Zhang 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 1.获取当前程序的空间名、类名、方法名(1).主体方法Main()1 class Program2 {3 static void Main(string[] args)4 {5 Test test = new Test();6 test.GetName();7 }8 9 }Main(2)测试方法Test() 1 class Test 2 { 3 public void GetName() 4 { 5 //命名空间.类名(当前代码所在方法的所在类和命名空间)——PingTest.Test 6 ... 阅读全文
posted @ 2013-05-23 14:13 Kitten Zhang 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 装饰模式(Decorator)——动态的给一个对象添加一些额外的职责,就增加功能而言,装饰模式比生产子类更加灵活。 在日常开发中,经常会遇见一个对象有很多的功能,但是这些功能有时候是需要的,有的时候并不需要其他功能,只用到了这个对象中的一部分功能。这样,类的复杂度就比较高,违背了单一责任原则和开发-封闭原则。这时候就需要装饰模式。 装饰模式是为已有功能动态的添加更多功能的一种方式。当系统需要新功能时,是向旧的类中添加的代码通常作用就是给原有的类的核心职责添加一些行为。当使用装饰模式的时候,保持原有的类的核心责任不变,动态的给增加功能。这样,当执行特殊行为的时候,客户端代码就可以在运行中... 阅读全文
posted @ 2013-05-22 22:07 Kitten Zhang 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 不管何种设计模式,其实都会遵守一些设计原则,这些设计原则可以理解为面向对象的一些精髓,只有遵守这些设计原则,设计模式才会变得精彩! (1)单一职责原则——就一个类而言,应该仅有一个引起它变化的原因。 初步看来,单一职责的解释有点似懂非懂,类肯定会变化的,那什么是变化,又有什么可以使类发生变化呢。其实可以这么理解:如果一个类承担的责任过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当发生变化时,设计会遭受到意想不到的破坏。这么理解看来,单一职责原则其实就是鼓励一个类只完成它的专属责任,它不因该完成多个任务或者代替其他类... 阅读全文
posted @ 2013-05-21 21:52 Kitten Zhang 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 策略模式其实很想一个简单工厂模式的再封装,简单工厂模式,在工厂Factory中生产的是对象。而策略模式的上下文Context不仅创建了对象,而且直接调用了对象的计算方法,给我们返回的计算出的值。 工厂模式,客户端需要(开发人员)需要记住父类和工厂类两个对象,通过参数创建对象,而策略模式,只需要创建context类,传入参数,调用方法就可以实现计算,少了一个类型,可以使客户端更加简洁。 策略模式,它的本质就是用来封装算法,将本来由客户端承担的对象选择的职责,转到Context中,减少了客户端的压力。 使用策略模式,要注意,策略模式里面的算法都是完成的相同的工作,只是这些工作实现的算法不... 阅读全文
posted @ 2013-05-20 22:28 Kitten Zhang 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 简单工厂模式可以说重面向过程转向面向对象的一个比较典型的模式,这是一个基本实现了类的继承和多态的模型,并且最后可进行封装,简单工厂模式并不是很难,但是却很有用。下面是我理解的具体的内容和代码:1.创建Opretation操作类,这是一个父类,它不具体实现什么,可以说只是一个实体类。 1 /// <summary> 2 /// 这是一个父类,主要作用是获取参数值, 3 /// 定义一个抽象方法,给子类进行重写 4 /// </summary> 5 public class Operation 6 { 7 private double n... 阅读全文
posted @ 2013-05-19 22:18 Kitten Zhang 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 毕业快一年了,感觉毕业以后除了12年6-10月的努力学习以外,别的时间还是在荒废着,前面一个公司没转正就走了,感觉太小,现在进入一个大公司,每天压力很大,感觉又不是自己想要的工作状态,这就让我很迷茫了,也许,创业是一条不错的道路,但是以我目前的状态,技术还停留在去年的水平,甚至远远不如刚学习出来的水平了,业务什么的还是有很多不懂的,远远没到该进行创业的时候! 前段时间,对技术也存在一些迷茫,一度认为.net没有什么发展前途,然后想学ios,但是学习ios需要苹果的操作系统,准确的说是需要一个MAC电脑,对于我现在来说,工资只能解决温饱,还达不到购买MAC的水平,然后装虚拟机的话电脑配置跟... 阅读全文
posted @ 2013-05-19 21:10 Kitten Zhang 阅读(194) 评论(1) 推荐(0) 编辑