• 第六章 装饰模式


    装饰模式将类的装饰功能从类中分离出来,只保留了类的核心职责,装饰逻辑(顺序)由调用者选择分配。

    /**
     * Created by hero on 16-3-30.
     */
    public abstract class Person {
        private String name;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Person() {
        }
    
        public Person(String name) {
            this.name = name;
        }
    
        public abstract void show();
    }
    /**
     * Created by hero on 16-3-30.
     */
    public class Finery extends Person {
        protected Person person;
    
        public void Decorate(Person person) {
            this.person = person;
        }
    
        @Override
        public void show() {
            if (this.person != null) {
                person.show();
            }
        }
    }
    /**
     * Created by hero on 16-3-30.
     */
    public class TShirt extends Finery {
        public void show() {
            super.show();
            System.out.println("T-shirt");
        }
    }
    /**
     * Created by hero on 16-3-30.
     */
    public class Trouser extends Finery {
        public void show() {
            super.show();
            System.out.println("Trouser");
        }
    }
    /**
     * Created by hero on 16-3-30.
     */
    public class ConcretePerson extends Person {
        public ConcretePerson(String name) {
            setName(name);
        }
    
        @Override
        public void show() {
            System.out.println(getName());
        }
    }
    public class Main {
    
        public static void main(String[] args) {
            ConcretePerson person = new ConcretePerson("小明");
            TShirt tShirt = new TShirt();
            Trouser trouser = new Trouser();
            tShirt.Decorate(person);
            trouser.Decorate(tShirt);
            trouser.show();
        }
    }
  • 相关阅读:
    各种
    shell
    搭建个人信息平台
    基本tomcat+nginx
    vi编辑的使用
    linux权限管理
    Java观察者模式
    Flume+Kafka+Sparkstreaming日志分析
    科学计算与数学建模
    推荐系统起手式-几种简单推荐模型(基于内容的推荐)
  • 原文地址:https://www.cnblogs.com/littlehoom/p/5339413.html
Copyright © 2020-2023  润新知