读书人

装饰模式三

发布时间: 2013-12-13 00:50:19 作者: rapoo

装饰模式3

public class A {

??? public void a1(){

?????? System.out.println("now in A.a1");

??? }

}

C1对象示例代码如下:

public?class C1 extends A{

??? public void c11(){

?????? System.out.println("now in C1.c11");

??? }

}

另外一个方案就是使用对象组合,怎么组合呢?就是在C1对象里面不再继承A对象了,而是去组合使用A对象的实例,通过转调A对象的功能来实现A对象已有的功能,写个新的对象C2来示范,示例代码如下:

public class C2 {

????/**

??? ?*?创建A对象的实例

??? ?*/

??? private A a = new A();

???

?


??? public void a1(){

???????//转调A对象的功能

?????? a.a1();

??? }

??? public void c11(){

?????? System.out.println("now in C2.c11");

??? }

}

?????? 对象组合是不是也很简单,而且更灵活了:

读书人网 >编程

热点推荐