摘要:看到许多中小项目的webservice接口的源代码,不禁有个吐槽的冲动。除了会用CXF,Axis2等神级框架,其他的懒得动了,都是Ctrl+V,Ctrl+C,把其他模块的Request,Response贴过来。一旦增加某个特性,不得不在所有Request,Response遨游一遍。早知今日,何必当初呢。 写一个好的Weservice Interface,关键是要多多总结。除了有Request,Response之外,还有很多。总结如下有: Request:webservice的输入。 Response:webservice输出。 DataRsponse:带结果集的webs...
阅读全文
摘要:这段时间的工作,使我意识到异步编程是工作中不可少的技能。异步编程分为两种:JVM内部的异步编程和JVM之间的异步编程。本文主要思考JVM内部的异步(简称为异步任务)。JVM之间的异步可以通过MQ等方式实现。 1、异步任务是什么? 异步任务是由一系列的事件处理器(EventHandler)和Event(事件)组成,EventHandlers之间的通讯通过Event来实现。每一个EventHandler占用一个线程(Thread)。 2、异步任务需要提供哪些功能 A、任务恢复机制:在任务被异常中断的情况下,可以恢复任务。 B、日志追踪机制:通过日志信息,来判断任务的执行情况,并对失败...
阅读全文
摘要:密码是网络生活必备之物,如何根据一个网站的要求,随机生成一个密码,请听我一一道来。 小米的密码要求如下:长度8~16位,同时包含数字、字母,可以使用特殊符号,字母区分大小写。 网易的密码要求如下:6~16个字符,不可以为9位以下的寸数字。 如果细心点,你会发现一个密码有以下几个部分组成。长度、允许字符类型、共存规则。 因此,如果需要生成一个密码,就需要从这个三方面入手。具体的类图下: CharLength即密码长度,AllowRule即允许存在的字符,ValidRule为共存规则,PwdChar各种类型的字符。 根据小米密码要求,我们需要4种Pwcahr,分别是PwdL...
阅读全文
摘要:按照这个方法写,至少85分! DbConnectionManager的代码就不贴出来。关键的是以下几个类。 1、JdbcHelper类/** * 类描述:jdbc 工具类 */public abstract class JdbcHelper{ /** * 处理查询类的函数 * @param callback * @return */ public static Object doJdbc(JdbcQueryCallback callback){ Connection con = null; PreparedStat...
阅读全文
摘要:商品分类树是电子商务网站比不可少的模块,设计一个基于内存的商品分类模块是比不可少的。 模块由以下几类函数组成: 1、商品数量的统计与更新。 2、节点的常用操作:添加、删除、获取根节点,叶子判断。 3、商品种类遍历。 4、商品种类检索。 5、商品分类树的构建。 相关注释已经写在代码,代码如下:package com.ming.article.pattern.commodity;import java.util.Collections;import java.util.LinkedList;import java.util.List;import java...
阅读全文
摘要:SurfaceView中有两类元素:1、InitiativeComponent。2、PassiveComponent。 InitiativeComponent即自动变化的组件,它的特点是时刻都有线程在在驱动它运行。比如 不停走动的小兵,上下浮动食人花。 对于这类元素,应该为他们创建Initiative接口:public interface Initiative extends Runnable { //暂停 public void pause(); //恢复 public void resume(); } 继承Runnable,表明此元素可以与UI线程...
阅读全文
摘要:为什么要设计EventBus,因为他是领域驱动设计中比不可少的模块,它承担传输数据的作用,它可以解耦模块之间的耦合性。 如何对EventsBus进行定义。1、EventBus是基于JVM内部的数据传输系统,不是JMS;EventBus的核心对象为Event和EventHandler。 EventBus的模块结构如下: EventService对外提供各种服务,它依赖queue,bus,annotatin。 queue包为EventService提供事件源。 bus包提供两种事件总线:ClassEventBus和TopicEventBus。 annotatin包提供两种注解方...
阅读全文
摘要:几乎每个系统都要与第三方进行交互。一般来说第三方API都会提供json或xml供系统使用。 我们的目标是把api集成到系统中,并降低api对系统的影响。但是随着编码的进行,有太多的坏味道散落到系统中,比如Copy的代码满天飞;配置信息分散各处;无法有效地组织API。 面对这些问题,系统应该主动地把api封装起来,形成独立的模块供上层系统调用。 该模块涉及到的模式为[Template Method+Callack],[Factory],涉及到的元素如下 1、client:Template Method的实现者;定义了与第三方交互的过程;从Callback获取数据组装成适合第三...
阅读全文