设计模式
文章平均质量分 78
zhanglei4214
这个作者很懒,什么都没留下…
展开
-
接口与抽象类
接口(interface)与抽象类(abstract class)的区别是我在面试的时候几乎必问的一个问题,可惜很少有面试者能回答得很好。大多数能说出它们的特性,比如不能实例化,是定义接口的用途等等。但是在实际工作环境中能把这两个运用得很好的并不多。在实际工作中很多.NET程序员会有意识的使用接口,但是很少使用抽象类。C++程序员,由于受到语言的限制(语言本身并没有定义接口这个概念),只会将抽象类原创 2013-07-28 13:14:17 · 1144 阅读 · 0 评论 -
关注分离
这两天在工作中经常会提到spearation of concern这个概念。我想在这篇博客里讲一下我对这个概念的理解。实际上关注分离并不是一个专属于IT领域的概念。在各个领域我们都在不自觉的考虑如何将任务切割,分配。记得在我读书的时候,看一些开源代码,就是不理解为什么这些所谓的牛逼代码写得那么绕:明明一个简单的new就能创建一个实例,偏要用一个工厂类来生成;明明一个new就能解决的问题,偏偏要拆成原创 2013-08-11 13:45:29 · 1219 阅读 · 0 评论 -
再谈关注分离, 基于版本控制的设计
前段时间写了一篇关于关注分离的博客。很巧的是这段时间我们需要在项目里增加一个新特性,又提到了关注分离。背景是这样的:我们有一个ConfigManager类,这个类的职责是读取和写入配置文件。当业务逻辑有配置文件读写要求时,直接调用ConfigManager即可,使得配置文件对业务逻辑完全透明。当时在设计ConfigManager类的时候考虑到了配置文件的格式有可能在将来会改变,实现可能会有bug,原创 2013-09-01 15:36:43 · 1340 阅读 · 0 评论 -
无锁,线程安全,延迟加载的单例实现(C#)
单例(singleton)是非常常见,也非常有用的设计模式,当然了, 面试中也是经常会被问到的:)在几乎所有的项目中都能看到它的身影。简而言之,单例保证了一个自定义类型在整个程序的生命周期只被创建一次。要实现一个简单的单例是也很容易的: public class Example { private static Example instance; private Examp原创 2013-10-07 21:39:06 · 4695 阅读 · 0 评论