zoukankan      html  css  js  c++  java
  • 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();
        }
    }
  • 相关阅读:
    ****** 2019-2020-1 《数据结构与面向对象程序设计》第1周学习总结
    预备作业
    《数据结构与面向对象程序设计》第01周学习总结
    我太难了——00周作业
    作业二
    预备作业 作业一
    FIR滤波器设计
    第五章:相关分析
    通常来说分频电路用计数器来实现,奇数倍的话记得用上或门!
    HDLBits 刷题记录(5)
  • 原文地址:https://www.cnblogs.com/tiantianbyconan/p/2779194.html
Copyright © 2011-2022 走看看