架构&实践 设计模式 10
作者 张强  发布于 2017年07月18日  阅读 646
近日,在开发的过程中发现了一个很大的类,有1000+行代码,大部分情况下,一个1000+行代码的类一定是做了一些本不应该是它负责的事,这是一个处理订单的类,方法大多数是对各种订单消息的处理:各个Listener(消息监听器)实现接口MessageListener的onMessage方法来接受消息,然后调用服务处理消息,以上结构有三个缺点:第一、接受消息的代码(如日志、异常处理、监控、遍历)是重复的...
作者 张强  发布于 2017年07月12日  阅读 991
最近在重构中用到了设计模式中的观察者模式,简单的跟大家分享一下观察者模式的原理和使用场景。在进入正题之前,先简单的介绍一下业务场景,交易系统中很重要的一个流程就是订单状态的流转,这次重构的就是订单完成的部分。订单完成之后,要做很多的后续工作,比如通知用户、发起计费、扣点、通知相关系统等。重构之前的代码结构如下:示例代码:class OrderMessageResolver implements M...
文章 发布于 2015年09月01日  阅读 1870
了解 Reactor 模式,就要先从事件驱动的开发方式说起。我们知道,服务器开发,CPU 的处理速度远高于 IO 速度,为了避免 CPU 因为 IO 为阻塞,好一点的方法是多进程或线程处理,但这会带来一些进程切换的开销。
文章 发布于 2015年08月20日  阅读 958
定义为其他对象提供一种代理以控制对这个对象的访问结构示例Subject 定义了 RealSubject 和 Proxy 的公共接口,这样就可以在任何使用 RealSubject 的地方使用 Proxy。abstract class Subject { public abstract void Request();}RealSubject 定义了 Proxy 所代表的真实实体。class Re...
文章 发布于 2015年08月18日  阅读 868
定义将对象组成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有唯一性。结构示例Component:组件中的对象声明接口。在适当的情况下,实现所有类共有接口的默认行为。声明一个接口用于访问和管理 Component 的子组件。abstract class Component { protected String name; public Compon...
文章 发布于 2015年08月18日  阅读 1124
定义将抽象部分与实现部分分离,使它们都可以独立的变化。结构示例Implementor:定义实现接口interface Implementor { // 实现抽象部分需要的某些具体功能 public void operationImpl();}Abstraction:定义抽象接口abstract class Abstraction { // 持有一个 Implementor 对象,...
文章 发布于 2014年11月18日  阅读 449
我们知道可以通过组合接口实现上层建筑,通过不同的实现类实现不同的地层建筑。所以,基于此思想,在进行方法传参时,通过传递泛型,实现不同的类型传参。最开始的实现很简单,只传递一个 BaseRequest,也只有一个参数 id。但是,随着实现的不同,我们需要对 request 进行特别梳理,分为 SampleRequest 和 MultRequest 两种扩展请求,分别扩展了 time 和 timestamp、sign 参数。
文章 发布于 2014年10月09日  阅读 981
最近在重构一段代码,发现之前的流程大概是如下图,这样的设计结构。一、这是一个发送消息的流程,长长的一段代码,通过依赖构成整个流程的架构。整个流程依赖三个环节:适配、发送、保存,其中发送又依赖消息体生成。二、由于消息类型不同,适配、发送、保存的具体实现不同,所以代码中大量的充斥着if ... else ...的判断语句。这不仅导致代码可读性很差,而且还产生了大量冗余代码。
文章 发布于 2014年09月24日  阅读 1245
在Java以及其他的面向对象设计模式中,类与类之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。他们的耦合度依次增强。1. 依赖(Dependence)依赖关系的定义为:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。定义比较晦涩难懂,但在Java中的表现还是比较直观的:类A当中使用了类B,其中类B是作为类...
文章 发布于 2013年06月17日  阅读 454
1. 设计模式是什么模式是什么?模:就是模型、模板的意思;式:就是方式、方法的意思。模式:可以作为模型或模板的方式或方法。设计模式是什么?设计模式:是指在软件开发中,经过验证的,用于解决在特定环境下、重复重现的、特定问题的解决方案。1. 设计模式是解决方案。解决方案:就是解决方法,亦即是/解决问题的方式或方法。2. 设计模式是特定问题的解决方案。限制"特定问题",通常一个设计模式仅仅解决某个或某些...
共10条记录 共1页 上一页 首页 1 末页 下一页