- 博客(7)
- 资源 (2)
- 收藏
- 关注
原创 职责链模式(Chain of Responsibility Pattern)
所有一切链式的、分步完成的、"传递性"的都可以想到用职责链模式。其实现方式的关键类似于链表的结构。职责链由一些职责结点组成,每个结点能够将任务传递给下一个结点。最后每个结点都遍历且执行了该结点规定执行的任务。举个例子:类图:关键是RequestHandler的实现。代码:/** * * RequestHandler * */public abstract class RequestHa
2017-09-19 14:49:23 592
原创 模板方法模式(Template Method Pattern)
模板方法模式是定义一个算法的骨架,将算法的实现延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。在这个例子中,算法骨架是StealingMethod,然后定义了两个算法的具体实现类:SubtleMethod和HitAndRunMethod。算法调用者为Halfling Thief,调用者只关心StealingMethod,而具体的算法实现由具体的场景来具体指定。类
2017-09-18 14:32:46 840
原创 读者容错模式(Tolerant Reader Pattern)
读者容错模式是当从一个数据模型中读取数据的时候,无论这个数据模型如何变换,尽最大可能读取自己需要的数据,达到读取数据健壮性的要求。例如我们有一个数据模型类:RainbowFish,表示一种鱼。有一个读写数据的类:RainbowFishSerializer,来获取RainbowFish的name、age、lengthMeters、weightTons等数据。但是RainbowFish是第三方提供,可
2017-09-15 17:37:04 1323
原创 Flux Pattern
Flux是Facebook提出的一种新的架构模式。一个Flux架构一般分为4个部分:View:视图层(界面)Action:视图层发出的消息或事件,如点击按钮Dispatcher:派发器,用来接受Actions、执行回调函数Store:数据层,用来存放应用状态,一旦发生变动,就要通知Views更新界面执行流程 用户操作(访问)ViewView发出用户的Action给DispatcherDispatc
2017-09-13 19:32:23 1409
原创 转换器(Converter)模式
在日常编码中,我们会遇到这样一个场景:把一个类型的对象转换成另一个对象,而这两者之前的转换强调的是"值(Value)"的等价转换,两者之间并没有继承与被继承的关系,也并不是像浮点数转整数这种语法意义上的转换关系。如下面举的这个例子:"用户"这个对象定义了User和UserDto两种Bean class来表示,二者所代表的"值"都是一致的,只是一个是业务逻辑层面的,一个是数据访问层面的。二者之前常常
2017-09-08 16:28:20 2297 1
原创 事件分发(EventDispatcher)模式
该模式实际上是监听模式的一种扩展。由事件(Event)驱动,每当有事件产生的时候,由事件分发器分发给特定的事件处理器处理该事件。类图:核心类:EventDispatcher——事件分发中心,每个来的事件都由该类分发到特定的处理者 Event——事件接口,不同的事件类型都要实现该接口 Handler——处理器接口,不同的处理器都要实现改接口
2017-09-01 17:35:12 9921
原创 execute around 模式
在写代码的时候,常常会遇到这样的情况:每次在执行一段代码的时候,都需要先执行一些代码;执行完之后,再执行另一些代码。比如在读写文件的时候,我们真正care的逻辑是"读写",至于文件流的初始化、打开、关闭、异常处理等都不是我们关心的。但是,每次在"读写"之前,我们需要执行打开操作,"读写"之后,需要执行关闭操作。这个时候就可以使用"execute around 模式"来提炼出"读写"前后的公共代码,
2017-09-01 16:24:39 723
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人