第一次接触设计模式,这几天一直都在学习简单工厂模式和策略模式,也想通过这两个模式把学习的C#巩固一下,毕竟前一阶段学的不咋的。
刚开始看的时候觉得一个脑袋二个大,很多地方都不理解,然后硬着头皮开始敲,去实现,然后回过头找资料做比较,发现这两个模式其实还是很相似的,而且加深了对C#的一些基础知识点的认识。
这两种模式都是在封装变化,减少耦合。利用封装变化点的思想,把经常变动的功能抽象处理,形成一个个的功能类,从而减少代码的改动。最后利用多态,实现功能变化,而客户端代码不发生变化。
简单工厂模式
简单工厂模式:由一个工厂对象创建出哪一个产品类的实例。它的特点就是可以动态的决定将哪个类实例化,不必事先知道每次要实例化哪个类。
有一个父类需要做一个运算(其中包含了不同种类的几种运算),将父类涉及此运算的方法都设成虚方法,然后父类派生一些子类,使得每一种不同的运算都对应一个子类。另外有一个工厂类,这个类一般只有一个方法(工厂的生成方法),这个方法的返回值是一个超类,在方法的内部,根据传入参数的不同,分别构造各个不同的子类的对象,并返回。客户端并不认识子类,客户端只认识超类和工厂