zoukankan      html  css  js  c++  java
  • 第六章 装饰模式

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

    /**
     * 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();
        }
    }
  • 相关阅读:
    python js(JavaScript)初识
    python css盒子型 浮动
    12、液化
    11、高斯模糊—晶格化
    10、形状工具—渐变图标
    9、形状工具—雪糕
    8、形状工具—制作简单立体效果
    7、形状工具
    6、自由变换—再复制功能
    第三章-17、消息聊天界面
  • 原文地址:https://www.cnblogs.com/littlehoom/p/5339413.html
Copyright © 2011-2022 走看看