本帖最后由 edithe 于 2015-5-31 16:39 编辑
装饰类,我认为是相互叠加的过程,箱子外再套箱子,两个装饰类本来都是独立的类,但是因为要叠加,所以必须让彼此产生关系,即调用彼此的对象,所以在内部维护一个对象,但是不能明确指向实体(因为装饰类有很多),但是内部维护的对象却要可以指向任何一个装饰类,这就可以利用多态了(父类引用对象指向子类对象实体),所以必须继承某类或者实现接口
如果不继承或者实现接口,那么多个装饰类相叠加的时候就麻烦多了,这有悖面向对象的思想吧
描述不是很清楚,下面附上简单代码,以便理解
- interface Work{
- public void job();
- }
- class Child implements Work{
- Work work;
- public void job(){
- System.out.println("画画");
- }
- }
- class Mother implements Work{
- Work work;
- public Mother(Work work){
- this.work=work;
- }
- public void job(){
- work.job();
- System.out.println("上色");
- }
- }
- class Father implements Work{
- Work work;
- public Father(Work work){
- this.work=work;
- }
- public void job(){
- work.job();
- System.out.println("装裱");
- }
- }
复制代码 |