java 设计模式
文章平均质量分 81
素剑步青尘
java web开发
展开
-
java设计模式第4弹--桥接模式
一、外观模式慨念 将抽象化与实现化脱耦,使得二者可以独立的变化。 二、解决的问题 他们之间的强关联变成弱关联,也就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两者可以独立的变化 三、代码模拟实现 public interface DataSource { public void method(); } publi原创 2015-09-09 22:50:44 · 400 阅读 · 0 评论 -
java设计模式第14弹--备忘录模式
一、备忘录模式定义 二、备忘录模式的三个角色 1.备忘录角色 2.备忘录发起人角色 3.备忘录管理角色 package com.lkx.sjms.memento; import javassist.compiler.ast.Member; /*** * 备忘录角色发起者 * @author 素剑步青尘 * */ public class Originator原创 2015-09-22 22:09:36 · 299 阅读 · 0 评论 -
java设计模式第13弹--原型模式
java中的克隆方法有两种: 浅克隆和深克隆 浅度克隆 只负责克隆按值传递的数据(比如基本数据类型、String类型),而不复制它所引用的对象,换言之,所有的对其他对象的引用都仍然指向原来的对象。 深度克隆 除了浅度克隆要克隆的值外,还负责克隆引用类型的数据。那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那些被引用的对象。换言之,深度克隆把要复制的对原创 2015-09-21 16:23:07 · 303 阅读 · 0 评论 -
java中介者模式--第17弹
定义:用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。 中介者模式的结构 中介者模式又称为调停者模式,从类图中看,共分为3部分: 抽象中介者:定义好同事类对象到中介者对象的接口,用于各个同事类之间的通信。一般包括一个或几个抽象的事件方法,并由子类去实现。中介者实现类:从抽象中介者继承而原创 2015-10-08 16:35:42 · 233 阅读 · 0 评论 -
java设计模式第12弹--工厂模式
一、工厂方法模式分为三种 1.简单工厂模式 2.普通工厂模式 3.抽象工厂模式 有些书中将1,2合并为一个模式,下面我们逐个介绍下这三个模式,个人觉得1,2是没有必要再细分的,合并为一个普通工厂模式也是极好的!!! 1.简单工厂模式 /*** * 接口类--创建两者的共同接口类 * @author 素剑步青尘 * */ public interface Sender {原创 2015-09-18 16:39:45 · 261 阅读 · 0 评论 -
java设计模式第11弹--建造者模式
一、 概述 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 适用性 1.当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。 2.当构造过程必须允许被构造的对象有不同的表示时。 参与者 1.Builder 为创建一个原创 2015-09-16 22:58:03 · 335 阅读 · 0 评论 -
java设计模式第10弹--享元模式
一、享元模式慨念 Flyweight在拳击比赛中指最轻量级,即“蝇量级”或“雨量级”,这里选择使用“享元模式”的意译,是因为这样更能反映模式的用意。享元模式是对象的结构模式。享元模式以共享的方式高效地支持大量的细粒度对象。 Java中的String类型 在JAVA语言中,String类型就是使用了享元模式。String对象是final类型,对象一旦创建就不可改变。在JAVA中字符串常原创 2015-09-15 22:35:18 · 215 阅读 · 0 评论 -
java设计模式第9弹--代理模式
1. 简介 代理模式(Proxy Pattern)是GoF 23种Java常用设计模式之一。代理模式的定义:Provide a surrogate or placeholder for another object to controlaccess to it(为其他对象提供一种代理以控制对这个对象的访问)。使用代理模式创建代理对象,让代理对象控制目标对象的访问(目标对象可以是远程的对原创 2015-09-14 23:05:12 · 250 阅读 · 0 评论 -
java设计模式第8弹--中介者模式
一、中介者模式定义 Mediator 中介者,或者叫仲裁者,类似房屋的中介,比如演播室的主播和嘉宾,主播在说话的时候,嘉宾不能打断他,主播停止说话的时候嘉宾才能说话,主播则可以随时说话,这里还有一个中间人: 1.主播对中介者说,节目开始了,我要说话了 2.中介者看看嘉宾是不是在说话,如果是在说话,让他停止,让主播说,如果嘉宾没在说话,让主播说原创 2015-09-13 23:37:54 · 311 阅读 · 0 评论 -
java设计模式第16弹--访问者模式
访问者模式的优点 符合单一职责原则:凡是适用访问者模式的场景中,元素类中需要封装在访问者中的操作必定是与元素类本身关系不大且是易变的操作,使用访问者模式一方面符合单一职责原则,另一方面,因为被封装的操作通常来说都是易变的,所以当发生变化时,就可以在不改变元素类本身的前提下,实现对变化部分的扩展。扩展性良好:元素类可以通过接受不同的访问者来实现对不同操作的扩展。 访问者模式的适用场景原创 2015-09-28 23:15:05 · 246 阅读 · 0 评论 -
java设计模式第7弹--观察者模式
一、观察者模式定义 观察者模式定义了一种一队多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使他们能够自动更新自己。 二、观察者模式的组成 抽象主题角色:把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用一个抽象类和接口来实现。原创 2015-09-12 22:03:54 · 397 阅读 · 0 评论 -
java 设计模式第2弹--外观/门面模式
一、外观模式慨念 它为子系统中的一组接口提供一个统一的高层接口。是的子系统更容易使用 二、解决的问题 解决类与类之间的依赖关系,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度 三、场景描述 女朋友饿了要吃饭,一想到要去1.买菜 2.生火 3.去超市买各种佐料原创 2015-09-07 23:19:48 · 333 阅读 · 0 评论 -
java设计模式第1弹---适配器模式
适配器模式原创 2015-09-06 17:47:32 · 378 阅读 · 0 评论 -
java 设计模式的开场浅谈
工作后,项目做了很多,但是谈单设计模式,其实并不是很了解,项目中用到的设计模式也蛮多的,但是因为自己不是很了解设计模式,所以并不知道项目中都用了那些设计模式,最近在了解设计模式,也做个记录吧,每天看一个设计模式,并将自己的心得,成长过程记录在csdn。原创 2015-09-06 17:22:50 · 457 阅读 · 0 评论 -
java设计模式第6弹--单例模式
一、责任链模式慨念 责任链模式,有多个对象,每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递,直到某一对象决定处理该请求。但是发出者并不清楚到底最终那个对象会处理该请求。 二、解决的问题 责任链模式可以实现,在隐瞒客户端的情况下,对系统进行动态的调整 三、单例模式的好处 1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开原创 2015-09-11 22:19:46 · 362 阅读 · 0 评论 -
java设计模式第5弹--责任链模式
一、责任链模式慨念 责任链模式,有多个对象,每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递,直到某一对象决定处理该请求。但是发出者并不清楚到底最终那个对象会处理该请求。 二、解决的问题 责任链模式可以实现,在隐瞒客户端的情况下,对系统进行动态的调整 三、代码模拟实现(部分代码摘自网上) Abstracthandler类提供了ge原创 2015-09-10 22:06:53 · 326 阅读 · 0 评论 -
java第三弹--组合模式
一、组合模式慨念 将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 二、什么情况下使用组合模式 引用大话设计模式的片段:“当发现需求中是体现部分与整体层次结构时,以及你希望用户可以忽略组合对象与单个对象的不同,统一地使用组合结构中的所有对象时,就应该考虑组合模式了。” 今天有点累,就直接上代码了原创 2015-09-08 23:15:15 · 336 阅读 · 0 评论 -
java设计模式第15弹--状态模式
一、状态模式慨念 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。 二、意图 允许一个对象在其内部状态改变时改变它的行为 三、使用场景 1.一个对象的行为取决于它的状态,并且它必须在运行时刻根据状原创 2015-09-23 22:45:28 · 298 阅读 · 0 评论