• java 装饰者模式


    IPerson:

    /**
     * @author com.tiantian
     * @version 创建时间:2012-11-20 下午3:43:04
     */
    public interface IPerson {
        public void canDo();
    }

    Person:

    /**
     * @author com.tiantian
     * @version 创建时间:2012-11-20 下午3:44:04
     */
    public class Person implements IPerson{
    
        @Override
        public void canDo() {
            System.out.println("I can code");
        }
    }

    Decorator(所有Person装饰者的父类):

    /**
     * @author com.tiantian
     * @version 创建时间:2012-11-20 下午3:44:55
     */
    public class Decorator implements IPerson{
        private IPerson person;
        public Decorator(IPerson person) {
            this.person = person;
        }
    
        @Override
        public void canDo() {
            person.canDo();
        }
    }

    DecoratorSwim(Swim装饰--为Peron添加“Swim”功能):

    /**
     * @author com.tiantian
     * @version 创建时间:2012-11-20 下午3:48:54
     */
    public class DecoratorSwim extends Decorator{
    
        public DecoratorSwim(IPerson person) {
            super(person);
        }
        
        @Override
        public void canDo() {
            super.canDo();
            System.out.println("I also can swim");
        }
    }

    DecoratorDraw(Draw装饰--为Peron添加“Draw”功能):

    /**
     * @author com.tiantian
     * @version 创建时间:2012-11-20 下午3:47:29
     */
    public class DecoratorDraw extends Decorator{
    
        public DecoratorDraw(IPerson person) {
            super(person);
        }
        @Override
        public void canDo() {
            super.canDo();
            System.out.println("I also can draw");
        }
    }

    Test:

    /**
     * @author com.tiantian
     * @version 创建时间:2012-11-20 下午3:49:35
     */
    public class Test {
        public static void main(String[] args) {
            Decorator decorator = new DecoratorDraw(new DecoratorSwim(new Person()));
            decorator.canDo();
        }
    }
  • 相关阅读:
    WPF自定义加载控件
    C# 动态调用Webservice
    C#程序执行Python脚本
    C#监控U盘插拔
    WPF—编程宝典P1
    详解S7源码3-COTP and TPKT
    详解S7源码(1)----Types
    详解S7源码2----Conversition
    P18 FlipPanel控件的讲解
    WPF编程宝典P18----ColorPicker 和FlipPanel的讲解
  • 原文地址:https://www.cnblogs.com/tiantianbyconan/p/2779194.html
Copyright © 2020-2023  润新知