随笔分类 - Thinking In Design Pattern
摘要:当网络中两个进程需要通信时,我们往往会使用 来实现。 都不陌生。当三次握手成功后,客户端与服务端就能通信,并且,彼此之间通信的数据包格式都是二进制,由 协议负责传输。 当客户端和服务端取得了二进制数据包后,我们往往需要『萃取』出想要的数据,这样才能更好的执行业务逻辑。所以,我们需要定义好数据结构来描
阅读全文
摘要:开篇 在一门编程语言中,往往会提供大量的运算符。按功能来分的话,有算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符等。这些对于大家来说都不陌生。但是,本期的主角『位运算』符相对而言是比较少去使用的。因为位运算符主要针对两个二进制数进行位运算。 巧用位运算能极大的精简代码和提高程序效率。所以,
阅读全文
摘要:基于个人的经验,谈谈设计模式在网关中的应用。因为是经验之谈,没有绝对的对与错。 下面整理的是我最常使用的设计模式,我用设计模式的前提是 让代码的可读性变强 能支持日后功能扩展 单例 目的 保证全局只有一个实例,防止因为频繁的创建、销毁对象而造成不必要的性能开销。 在网关项目中,单例模式是出现频率最高
阅读全文
摘要:『设计模式』中有一个模式可以解释特定的语法规则,它就是解释器模式(Interpreter Pattern)。不同于常见的策略模式或者是工厂模式,解释器模式在.NET或者JDK中并不常见,而且在业务上也很少会去解释特定的语法,所以它并不被广泛使用。一个解释器可大可小,大可以是复杂的编译器,小也可以是一
阅读全文
摘要:SOLID 是面向对象设计5大重要原则的首字母缩写,当我们设计类和模块时,遵守 SOLID 原则可以让软件更加健壮和稳定。那么,什么是 SOLID 原则呢?本篇文章我将谈谈 SOLID 原则在软件开发中的具体使用。 单一职责原则(SRP) 单一职责原则(SRP)表明一个类有且只有一个职责。一个类就像
阅读全文
摘要:对于SharePoint Developers来说,往往会过多的去关注SharePoint平台和工具,而把设计模式和代码的可测试性放在了一个较低的优先级。这并不是说SharePoint Developers对设计模式不感兴趣,而是缺乏在SharePoint平台下使用设计模式的经验。所以本篇Blog正如题目所示:探索MVP(Model-View-Presenter)设计模式在SharePoint平台下的实现。利用MVP设计模式,可以尽量让我们的项目分离关注点、易测试、可重用。在实现MVP时,我也会加入Repository和Service Locator这两种设计模式,Repository可以理解
阅读全文
摘要:原文《Thinking In Design Pattern——MVP模式演绎》不知为何丢失了,故重新整理了一遍。目录What Is MVPDomain ModelStubRepositotyIView & PresenterViewIoc容器StructureMap开篇忙碌的9月,工作终于落定,新公司里的框架是MVP+Linq,对于MVP虽然不熟,但有MVC的基础,花了两天时间研究了MVP,故作此博文,留作参考。Model-View-Presenter(模型-视图-呈现器,MVP)模式的重点是让Presenter控制整个表示层的逻辑流。MVP模式由如下三个不同部分组成:模型表示视图显示
阅读全文
摘要:服务层的定义Domain Model的设计与实现IRepository的设计与实现Document Message模式和Request-Response模式的探索DataContract的设计与实现Contracts的设计与实现Service的设计与实现Idempotent模式的探索ClientProxy的设计与实现服务门面Facade的设计与实现客户端访问什么是服务层服务层位于表示层和业务层之间,他提供一个接口来定义应用程序的边界以及可供客户端使用的操作,在服务层向客户端描绘的门面后,它将业务逻辑、验证和工作流封装起来并协调业务实体的持久化和和检索工作——《ASP.NET设计模式》接下来,将
阅读全文
摘要:什么是Query Object模式Query Object的架构设计Query Object在服务层的应用测试Query Object模式Query Object:可以在领域服务层构造查询然后传给资源库使用,并使用某种查询翻译器将对象查询(Query)翻译成底层数据库持久化框架可以理解的查询(即翻译成一条Sql 语句)。而Query Object即可以理解为表示数据库查询的对象。且可以构造任意查询,然后传给Repository。Query Object模式的主要好处是它完全将底层的数据库查询语言抽象出来。如果没有某种查询机制,我们的持久化层可能会这样定义方法: public interf...
阅读全文
摘要:什么是Unit Of Work模式Unit Of Work(工作单元)模式用来维护一个由已经被业务事物修改(增加、删除或更新)的业务对象组成的列表。Unit Of Work模式负责协调这些修改的持久化工作以及所有标记的并发问题。在数据访问层中采用Unit Of Work模式带来的好处是能够确保数据完整性。如果在持久化一系列业务对象(他们属于同一个事物)的过程中出现问题,那么应该将所有的修改回滚,以确保数据始终处于有效状态。为了演示Unit Of Work模式,使用一个简单的银行领域对两个账号之间的转账建模。下图给出了服务层(AccountService)与使用了Unit Of Work模式(以
阅读全文
摘要:目录What Is MVPDomain ModelStubRepositotyIView & PresenterViewIoc容器StructureMap开篇忙碌的9月,工作终于落定,新公司里的框架是MVP+Linq,对于MVP虽然不熟,但有MVC的基础,花了两天时间研究了MVP,故作此博文,留作参考。Model-View-Presenter(模型-视图-呈现器,MVP)模式的重点是让呈现器控制整个表示层的逻辑流。MVP模式由如下三个不同部分组成:模型表示视图显示或者修改的业务数据,包括业务逻辑和领域相关的逻辑。视图通过呈现器显示模型数据,并将用户输入委托给呈现器。呈现器被视图调用来显
阅读全文
摘要:我始终认为学习设计模式需要怀着一颗敬畏的心去探索,这一系列23种设计模式并不是一蹴而就,都是前人根据自己的经验逐渐演化出来,所以才会形成非常经典的理论。学习设计模式,我想最好的方式是根据自己的经验逐渐来推导它,这样你才理解了其中奥妙,而不是靠记忆背住了它,所以,这篇博文主要分析三种工厂模式的演变过程:来实现吧,最简单计算器代码能否复用性忘记面向过程吧,面向对象思想的引入多态,简化代码大杀器质的飞跃:简单工厂模式的运用迷途知返:拨开云雾见工厂方法暴走一击:抽象工厂+工厂方法我们先举一个最平常例子——写一个最简单的计算器,我们可能非常快就完成了第一个版本:来实现吧,简易计算器namespace 工
阅读全文