用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

Java设计模式菜鸟系列(三)装饰者模式建模与实现

2015-04-12 作者: java源代码大全举报

[java]代码库

/**
 * 对修改关闭,对扩展开放。
 * 
 * 统一接口
 */
interface Filterable {
	public void filter();
}

/**
 * 目标类
 */
class Filter implements Filterable {

	@Override
	public void filter() {
		System.out.println("目标类的核心过滤方法...");
	}
}

/**
 * DecoratorForFilter1包装类与目标类实现相同的接口 --> 织入Log
 */
class DecoratorForFilter1 implements Filterable {
	private Filterable filterable;

	public DecoratorForFilter1(Filterable filterable) {
		this.filterable = filterable;
	}

	private void beforeMethod() {
		System.out.println("DecoratorForFilter1 --> 核心过滤方法执行前执行");
	}

	private void afterMethod() {
		System.out.println("DecoratorForFilter1 --> 核心过滤方法执行后执行");
	}

	@Override
	public void filter() {
		beforeMethod();
		filterable.filter();
		afterMethod();
	}
}

/**
 * DecoratorForFilter2包装类与目标类实现相同的接口 --> 织入Log
 */
class DecoratorForFilter2 implements Filterable {
	private Filterable filterable;

	public DecoratorForFilter2(Filterable filterable) {
		this.filterable = filterable;
	}

	private void beforeMethod() {
		System.out.println("DecoratorForFilter2 --> 核心过滤方法执行前执行");
	}

	private void afterMethod() {
		System.out.println("DecoratorForFilter2 --> 核心过滤方法执行后执行");
	}

	@Override
	public void filter() {
		beforeMethod();
		filterable.filter();
		afterMethod();
	}
}

/**
 * 客户端测试类
 * 
 * @author Leo
 */
public class Test {
	public static void main(String[] args) {
		/**
		 * 目标对象
		 */
		Filterable targetObj = new Filter();
		/**
		 * 包装对象(对目标对象进行包装)
		 */
		Filterable decorObj = new DecoratorForFilter1(new DecoratorForFilter2(
				targetObj));
		/**
		 * 执行包装后的业务方法
		 */
		decorObj.filter();
	}
}//源代码片段来自云代码http://yuncode.net
			


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...