装饰者设计模式

以我的理解来说,装饰者设计模式就是将要增强的类包装一下,将类中的方法进行增强,但是如何进行包装呢?

装饰者模式步骤:

1.首先创建一个新的类B,与原来的类C共同实现某个接口A(我觉得实现这个接口是为了约束这个新类有同样的方法)

2.新类中创建接口A类型的成员变量

3.书写类B的构造方法,参数是接口A类型,但实际传进来的是A的实现类C(这样我们就将C类包装了起来,成了新的类B,由于接口A的约束,方法还是C中的方法,接下来就是增强自己想要的方法)

4.实现全部方法,但是只增强自己需要的方法

代码:

A接口

package cn.liangce.test;

public interface Animal {

	public void eat();
}

C类

package cn.liangce.test;

public class Dog implements Animal{

	@Override
	public void eat() {
		System.out.println("狗吃骨头");
	}

}

B类

package cn.liangce.test;

public class DecoratorDog implements Animal{
	
	private Animal a;
	//构造方法中的参数类型是接口,实际是各种实现类
	public DecoratorDog(Animal a){
		this.a=a;
	}

	@Override
	public void eat() {
			System.out.println("狗不仅吃骨头,还吃肉");//增强方法
	}

}


阅读更多
换一批

没有更多推荐了,返回首页