设计模式
JdbcUtils
生活不止眼前的苟且,还有诗和远方。
展开
-
深入理解工厂模式
一、工厂模式 1.1定义 “Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses.” (在基类中定义创建对象的一个接口,让子类决定...原创 2018-10-24 10:53:34 · 13167 阅读 · 0 评论 -
模板方法(Template Pattern)的使用
定义: 模板方法模式定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式。让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤。 推荐实例: 1、首先定义一个模板(Template) /** * 一个信息处理工具模板 **/ public abstract class MessageHandler<REQ, RESP> { private static...原创 2018-10-23 17:54:53 · 12752 阅读 · 0 评论 -
门面模式 Facade Pattern
一、定义: 门面模式(Facade Pattern),是指提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口。使得子系统更容易使用。 二、门面模式的作用: 参考文章: The facade pattern (also spelled façade) is a software-design pattern commonly used with obj...原创 2018-10-23 15:16:40 · 12808 阅读 · 0 评论 -
装饰者模式 Decorator Pattern
作用:动态地给一个对象添加一些额外的职责。就增加功能来说, Decorator模式相比生成子类更为灵活。装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任。 装饰模式的优点: (1)装饰模式与继承关系的目的都是要扩展对象的功能,但是装饰模式可以提供比继承更多的灵活性。装饰模式允许系统动态决定“贴上”一个需要的“装饰”,或者除掉一个不需要的“装饰”。继承关系则不同,继承关系是静态的,它在系统...原创 2018-10-23 14:15:42 · 12516 阅读 · 0 评论 -
借助工厂模式统一管理Dao层实例
通常情况下,我们会把项目中的进行持久化操作的各个Dao实例交由spring IOC容器进行管理。利用依赖注入使用该Dao实例。 那么不妨可以尝试这样做,定义一个存放所有Dao实例的工厂,将项目中所有的Dao实例都转化为该工厂的静态成员,那当我们需要使用的时候,就可以很灵活的去调用各个持久化的方法。 实例(以mybaits为例) 1、假定目前工程的Dao模块存在3个mapper接口: AxxMap...原创 2018-10-25 16:55:45 · 13194 阅读 · 0 评论 -
《Head First设计模式》之单例模式
单例模式定义: 普通单例代码实现: public class Singleton { private static Singleton instance = new Singleton(); /* 需要将无参构造函数私有化,防止应用通过默认 new 的方式初始化实例*/ private Singleton() { ...原创 2018-07-30 15:03:35 · 12956 阅读 · 0 评论 -
《Head First设计模式》之工厂模式
工厂模式相信大部分码农都是非常熟悉的,比如常用的SLF4J日志工具就是使用这种设计模式实现的,接下来开始了解了解工厂模式。 然后将从orderPizza()中抽离出来的代码放到一个新对象中"SimplePizzaFactory"中。 上面只是粗略的简单模式的工厂模式,下面该来了解了解更深入的工厂模式 ...原创 2018-07-17 16:33:35 · 5298 阅读 · 0 评论 -
《Head First设计模式》之装饰者模式
但是因为饮料可以认为是由咖啡和调料组成的,多种咖啡和多种调料就能组合成无数多种的饮料。那么上述的方式实现饮料就会出现如下的情况。饮料种类过多,“类爆炸”!接下来看一段短对话;这里涉及到了一个涉及原则;===========接下来就到了本文的主题【装饰者模式】=============那之前的星巴克咖啡我们也可以用这样的装饰者模式去进行实现了。看一下如下的设计图:然后将设计使用具体代码来实现;然后,...原创 2018-05-30 16:30:58 · 13881 阅读 · 0 评论 -
《Head First设计模式》之观察者模式
讲述观察者模式之前,来看看原书的一个“气象观测站”的应用。该应用主要是由气象站提供给第三方客户气象相关数据,由第三方在相关展示面板上展示。目前我们知道些什么?来看看上面的错误实例究竟错在哪里了?接下来该认识一下本文的主角【观察者模式】观察者模式的定义:那我们可以继续之前气象站的相关设计了:对我们所设计的进行一下具体实现吧!定义 Subject、Observer和DisplayElement接口 ...原创 2018-05-29 16:57:57 · 13498 阅读 · 0 评论 -
《Head First设计模式》之策略模式
现在如果我们要让鸭子会飞,那么只需要在超类上添加方法即可:这时候就出现了一个bug! 如果子类是塑料鸭或者残疾的鸭子,那岂不是也到处乱飞!!!这是个严重的问题。所以在这时候又想到了用“继承”来解决 。继承又会导致,如果出现诱饵鸭、橡皮鸭。总不能每次都去覆盖父类的方法吧。拓展性极差。所以决定改用接口来解决此问题,将fly和quack两个行为从父类抽离出来,放到接口中,这样让会飞会叫的鸭子去实现该...原创 2018-05-29 14:03:21 · 13280 阅读 · 0 评论