![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#设计模式
Jacob Ni
工业自动化 工业4.0 智能制造 自动化测试 nihang1212@126.com
展开
-
第一章 策略模式
《Head First 设计模式》学习心得设计模式入门设计原则:把代码中将来可能变化的部分抽离出来,独立封装;针对接口编程,而不是针对实现编程。 两条原则,说白了都是变与不变的分离,第一条原则其实是目的,第二条原则是手段。心得设计的目标是要尽可能的重用代码,也就是能少干就少干点,时间节省下来喝茶聊天也比撸代码强。实现代码重用的重要手段是继承。子类公共的东西,在父类中实现,那么在子类中就不用再原创 2017-10-09 11:22:27 · 207 阅读 · 0 评论 -
第二章 观察者模式1
观察者模式观察者模式定义了对象之间的一对多的依赖,这样一来,当一个对象的状态改变时,它的所有依赖者都会收到通知并且自动更新。实现方法观察的对象为可观察者,要被通知的对象称为观察者。 观察者都实现同一个接口,里面有一个方法用来被可观察者调用,实现通知的功能。可观察者实现可被观察的接口,在观察者中调用可观察者接口的方法实现注册,删除观察者等功能。代码using System;using System原创 2017-10-09 17:22:55 · 293 阅读 · 0 评论 -
第二章 观察者模式2
C#内置观察者模式摘自:MSDN 在.net框架中已经提供了预定义的观察者模式的接口。 泛型接口IObservable<T>用来实现可观察者,IObserver<T>用来实现观察者。T是提供数据的类。 在可观察者内只调用观察者内的来自接口的方法,在观察者内只调用可观察者内来自接口的方法。这样就将观察者和可观察者解耦了,防止彼此藕断丝连。 订阅的工作由订阅者发起public virtual v原创 2017-10-10 10:42:55 · 241 阅读 · 0 评论 -
第三章 装饰者模式
装饰者模式装饰者模式像包了一层层糖纸的糖果,每一层糖纸都继承自同一个基类。 定义:动态的将责任附加到对象上。若要扩展功能,装饰者提供了比继承更富有弹性的替代方案。 特征:装饰者和被装饰者具有相同的基类;可以用一个或多个装饰者包装一个对象;既然装饰者和被装饰者具有相同的基类,可以用装饰者替代被装饰这;装饰者可以在被装饰者的行为前或后,添加自己的行为;对象可以在任何时候被装饰。结构示例代码原创 2017-10-10 16:05:25 · 201 阅读 · 0 评论 -
第四章 工厂模式
《Head First 设计模式》学习心得工厂模式简单工厂模式:把实例化对象的代码集中到一个具体的工厂类中。工厂方法:定义一个创建对象的抽象方法,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。抽象工厂:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。抽象工厂类中集中了一系列的抽象方法。使用场合:如果要实例化的对象变化比较小,使用简单工厂。简单工厂属于最原创 2017-11-08 15:31:05 · 229 阅读 · 1 评论 -
第五章 单件模式
《Head First 设计模式》学习心得单件模式定义:确保一个雷只有一个实例,并提供一个全局的访问点。 应用场景:当只需要一个类对象时,比如注册表对象,线程池对象,缓存等。这个时候只需要一个对象。如果有多个对象会造成资源浪费或者访问冲突。 单线程中的单间模式using System;using System.Collections.Generic;using System.Linq;us原创 2017-11-09 12:04:24 · 206 阅读 · 0 评论 -
第六章 命令模式
《Head First 设计模式》学习定义:将请求封装成对象,这可以让你使用不同的请求、队列或者日志请求来参数化其他对象。命令模式也可以支持撤销操作。解析:命令模式将请求对象和执行对象解耦。被解耦的双方是通过命令进行沟通的。所有具体命令实现了命令接口。具体的命令封装了动作执行者对象和该对象的一个或一组动作。示例代码:using System;using System.Collections.原创 2017-11-13 16:47:06 · 159 阅读 · 0 评论