`
文章列表
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ import java.util.ArrayList; import java.util.List; import java.util.Observable; import java.util.Observer; /** * “观察者”这个说法有歧义,听来好像是观察者在主动监控,其实只是被动的等通知,并不能感知到目标有变化 * 个人觉得观察者模式实现的关键,其实不在观察者而在被观察者,也就是Subject(目标): * Subj ...
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ package design.pattern; /* * 适配器模式解决的主要问题是,现有的方法接口与客户要求的方法接口不一致 * 可以这样想,我们要写这样一个类(Adapter): * 1.这个类要符合客户的要求 ---> 那显然要implements客户要求的接口 * 2.这些接口的实现是调用已有的类 ---> 有两种方法可获得已有的类的方法: * a.组合。对应“对象适配器” * b.继承。对应“类适配器” * ...
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ /* * 百度百科的定义: * Facade(外观)模式为子系统中的各类(或结构与方法)提供一个简明一致的界面, * 隐藏子系统的复杂性,使子系统更加容易使用。他是为子系统中的一组接口所提供的一个一致的界面 * * 可简单地将外观模式理解为 * 将复杂子系统的各种接口(方法)统一成一个方法 * (对客户来说只是一个业务操作,但这操作可能是由各子系统协调共同完成)提供给客户使用,达到方便和安全的效果 * * 比如客 ...
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ package design.pattern; /* * 解释器(Interpreter)模式的意图是可以按照自己定义的组合规则集合来组合可执行对象 * * 代码示例实现XML里面1.读取单个元素的值 2.读取单个属性的值 * 多个元素或者多个属性的示例书上也有,但稍显复杂,就不做这方面的笔记了 */ import java.util.ArrayList; import java.util.Collection; ...
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ import java.util.ArrayList; import java.util.List; /* * 备忘录模式的功能是,在不破坏封装性的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态,为以后的状态恢复作“备忘” * 书上给了一个场景,仿真系统: * 这个系统有两步操作,第一步操作后,产生一个临时数据(中间数据); * 接下来的第二步操作有两种方案,这两种方案都要基于第一步产生的数据作进一步处理 * 不用 ...
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; /* * 个人理 ...
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ package design.pattern; /* * Abstract Factory Pattern * 抽象工厂模式的目的是: * 通过在抽象工厂里面定义一组产品接口,方便地切换“产品簇” * 这些接口是相关或者相依赖的,组合在一起形成一个完整的“产品簇” * 可以认为抽象工厂的一个子类(实现)就是一个“产品” * * 书上以“组装电脑“为例: * 电脑有一些必须的组件,例如CPU、主板等等 * CPU有 ...
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ /** * 业务逻辑:项目经理只能处理500以下的费用申请,部门经理是1000,总经理不设限。简单起见,只同意“Tom” ...
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ import java.io.BufferedOutputStream; import java.io.DataOutputStream; import java.io.FileOutputStream; import java.io.FilterOutputStream; import java.io.IOException; import java.io.OutputStream; /** * 看到书上说是用装饰模式来计算奖金, ...
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ /** * 个人觉得关于桥接模式的例子,蜡笔和毛笔这个例子是最贴切的:http://www.cnblogs.com/zhenyulu/articles/67016.html * 笔和颜色是可分离的,蜡笔把两者耦合在一起了:一支蜡笔只有一种颜色。大、中、小三种尺寸的蜡笔,12种颜色,那一共需要3*12个类 * 画中国山水画时就不一样了,一支毛笔可以搭配不同的颜色,只需要大、中、小三支毛笔,外加12种颜色,那就只需12+3个类 * * ...
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ /* 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化 简单理解: 1、将不同的策略提炼出一个共同接口。这是容易的,因为不同的策略,只是算法不同,需要传递的参数(如果需要)和返回值(如果有)都是一样的 2、需要用到策略的类,持有这个接口。在计算时,就可以转调策略接口来实现 大体框架是这样: interface IStrategy { double ...
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ package design.pattern; /* * 工厂方法模式:使一个类的实例化延迟到子类 * 某次,我在工作不知不觉中就用到了工厂 ...
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ package design.pattern; /* * 个人理解:简单工厂模式就是IOC; * 客户端要用到某一对象,本来是由客户创建的,现在改成由工厂创建,客户直接取就好了 */ interface IProduct { void desc(); } class ProductImplA implements IProduct { public void desc() { System.out.printl ...
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ import java.util.ArrayList; import java.util.List; abstract class Component { public abstract void printStruct(String preStr); /*以下三个方法简单地抛出例外。叶子类Leaf不覆盖这些方法,表示不支持。而Composite则重写这些方法 * 这涉及到组合模式的透明性和安全性,就是说叶子类要不要知道 ...
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.Collections; import java. ...
Global site tag (gtag.js) - Google Analytics