随笔分类 -  Java设计模式

Java的设计模式详解
摘要:介绍: 构造者模式,又称之为建造者模式,建造者模式,单例模式以及工厂模式都属于创建型模式1应用场景 今天学mybatis的时候,知道了SQLSessionFactory使用的是builder模式来生成的。再次整理一下什么是builder模式以及应用场景。当一个bean类重载了多个构造方法时,并且参数 阅读全文
posted @ 2019-10-28 17:16 aspirant 阅读(1997) 评论(0) 推荐(0) 编辑
摘要:参考:Java经典设计模式 总览 为什么需要门面模式 我是一个辛苦一辈子的农民,攒了几十年钱,现在日子好了,也想建一套属于自己的小洋楼; 首先,我要雇一个搬砖的和一个和泥的,还要一个会砌墙的人;可是我到哪里去找这些人,还要一个一个跟他们谈价钱;不知道他们和不和得来,会不会干一半不干了; 哎,好烦; 阅读全文
posted @ 2019-03-06 16:03 aspirant 阅读(824) 评论(0) 推荐(0) 编辑
摘要:有个大神写的很好: 参考:设计模式学习笔记(四:策略模式) 参考:设计模式学习笔记(二:观察者模式) 参考:设计模式学习笔记-代理模式 参考:设计模式--装饰者模式与代理模式(重要) 参考:设计模式——代理模式与装饰模式的异同 (重要) 参考:设计模式之装饰模式 参考:java模式—装饰者模式 参考 阅读全文
posted @ 2018-08-10 19:56 aspirant 阅读(10228) 评论(0) 推荐(1) 编辑
摘要:业务对象是指那些从实际业务场景中抽象出来的对象,这些对象在代码中对应的就是一些业务对象类。 在常见的SSH框架的开发中,一般的做法是将每一个业务对象对应一个POLO,当然这是为了方便使用ORM框架。当我们把业务对象实现为POJO的时候,我们实际上是在使用业务对象贫血模式。下面是业务对象贫血模型图:( 阅读全文
posted @ 2018-08-08 15:39 aspirant 阅读(779) 评论(0) 推荐(0) 编辑
摘要:(1) 数据源中的同构与异构 如果你需要讨论一群鸟类或者一批飞机,那么这样的数据是同构的,比如包含鸟类的数组 [Bird] 和包含飞机的数组 [Airplane]。有时候你想探讨的是这些空中家伙的共性 “飞翔”,因此你的数据源可能同时包含 Bird 和 Airplane,这样的数据源叫做异构数据。 阅读全文
posted @ 2018-08-08 15:12 aspirant 阅读(14026) 评论(0) 推荐(0) 编辑
摘要:系统中用到了策略模式,如果 20180901之前的话,用一个统计策略,之后又用一个统计策略。 于是自己搞了一个策略模式: 一、策略模式定义 定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们之间可以相互替换,策略模式可以在不影响客户端的情况下发生变化。 好了,定义看看就完了,我知道 阅读全文
posted @ 2018-08-08 15:01 aspirant 阅读(1137) 评论(0) 推荐(0) 编辑
摘要:一、观察者模式 观察者模式,又可以称之为发布-订阅模式,观察者,顾名思义,就是一个监听者,类似监听器的存在,一旦被观察/监听的目标发生的情况,就会被监听者发现,这么想来目标发生情况到观察者知道情况,其实是由目标将情况发送到观察者的。 在现实生活中,警察抓小偷是一个典型的观察者模式「这以一个惯犯在街道 阅读全文
posted @ 2018-08-08 12:03 aspirant 阅读(4090) 评论(0) 推荐(0) 编辑
摘要:1、 装饰者模式,动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更加有弹性的替代方案。 2、组合和继承的区别 继承。继承是给一个类添加行为的比较有效的途径。通过使用继承,可以使得子类在拥有自身方法的同时,还可以拥有父类的方法。但是使用继承是静态的,在编译的时候就已经决定了子类的行为,我们 阅读全文
posted @ 2018-05-24 15:23 aspirant 阅读(8086) 评论(2) 推荐(1) 编辑
摘要:1.模式描述 我自己写了个例子:可以下载 源码:抽象工厂 提供一个用于创建一系列相关或相互依赖对象(产品族)的接口(抽象工厂),而无须指定它们的具体类。 2.模式作用 可以一定程度上解耦,消费者和产品实现类隔离开,只依赖产品接口(抽象产品),产品实现类如何改动与消费者完全无关。由于工厂方法是抽象工厂 阅读全文
posted @ 2018-05-02 16:49 aspirant 阅读(339) 评论(0) 推荐(0) 编辑
摘要:总结: 我自己写了个例子:有兴趣的可以下载看看,参考:工厂模式 工厂方法模式:一个抽象产品类,可以派生出多个具体产品类。 一个抽象工厂类,可以派生出多个具体工厂类。 每个具体工厂类只能创建一个具体产品类的实例。抽象工厂模式:多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。 一个抽象工厂类,可 阅读全文
posted @ 2018-05-02 15:35 aspirant 阅读(8786) 评论(1) 推荐(0) 编辑
摘要:概述 行为型模式一共有11种: 模板方法模式(Template Method) 策略模式(Strategy) 命令模式(Command) 中介者模式(Mediator) 观察者模式(Observer) 迭代器模式(Iteratior) 访问者模式(Visiter) 责任链模式(Chain of Re 阅读全文
posted @ 2018-05-02 11:20 aspirant 阅读(514) 评论(0) 推荐(0) 编辑
摘要:概述 结构型模式共七种: 适配器模式(Adapter) 外观模式(Facade) 桥接模式(Bridge) 装饰器模式(Decorator) 代理模式(Proxy) 享元模式(Flyweight) 组合模式(Composite) 其中又分为 接口适配:适配器、外观、桥接模式 行为扩展:装饰 性能与对 阅读全文
posted @ 2018-05-02 11:19 aspirant 阅读(2408) 评论(0) 推荐(1) 编辑
摘要:这一篇为第一篇介绍创建型模式,创建型模式一共有5种: 工厂模式 抽象工厂模式 单例模式 构造者模式 原型模式 一、工厂模式 定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。使一个类的实例化延迟到其子类 适用:当一个类不知道它所必须创建的对象的类的时候 类图: 例子代码: interfac 阅读全文
posted @ 2018-05-02 11:18 aspirant 阅读(1073) 评论(0) 推荐(0) 编辑
摘要:一、概况 总体来说设计模式分为三大类: (1)创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 参考:23种设计模式介绍(一) 创建型模式 (2)结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 参考:23种设计模式介绍( 阅读全文
posted @ 2017-07-23 16:43 aspirant 阅读(890) 评论(0) 推荐(0) 编辑
摘要:工厂方法模式 工厂方法模式分为三种:普通工厂模式、多个工厂方法模式和静态工厂方法模式。 1、普通工厂模式 普通工厂模式就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。 FactoryTest的运行结果我想应该很明显了。 再回头来理解这句话:普通工厂模式就是建立一个工厂类,对实现了同一接口 阅读全文
posted @ 2017-07-23 16:37 aspirant 阅读(341) 评论(0) 推荐(0) 编辑
摘要:概念: Java中单例模式是一种常见的设计模式,单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。 单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。 单例模式有以下特点: 1、单例类只能有一个实例 阅读全文
posted @ 2017-07-23 16:12 aspirant 阅读(790) 评论(0) 推荐(0) 编辑
摘要:我做了个例子 ,需要可以下载源码:代理模式 1、前言: Spring 的AOP 面向切面编程,是通过动态代理实现的, 由两部分组成:(a) 如果有接口的话 通过 JDK 接口级别的代理 (b) 如果没有接口的话,通过方法级别的代理 CGLib代理实现。 1.1 定义 什么是代理模式? 代理模式就是多 阅读全文
posted @ 2017-06-26 17:57 aspirant 阅读(3833) 评论(0) 推荐(0) 编辑
摘要:生产消费者模式 貌似也是阻塞的问题 花了一些时间终于弄明白这个鸟东东,以前还以为是不复杂的一个东西的,以前一直以为和观察者模式差不多(其实也是差不多的,呵呵),生产消费者模式应该是可以通过观察者模式来实现的,对于在什么环境下使用现在想的还不是特别清楚,主要是在实际中还没使用过这个。 需要使用到同步, 阅读全文
posted @ 2017-04-14 10:49 aspirant 阅读(805) 评论(0) 推荐(0) 编辑
摘要:由于最近工作中,涉及到生产者消费者设计模式,对此有一些体会,所以总结一下,与大家分享。 什么是生产者消费者模式 在工作中,大家可能会碰到这样一种情况:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产生数据的模块,就形象地称为生产者;而处理数 阅读全文
posted @ 2014-03-14 08:59 aspirant 阅读(411) 评论(0) 推荐(0) 编辑