TreeviewCopyright © qgao 2021-* all right reserved, powered by aleen42

装饰模式

Client

package com.bermda.surface;

import com.bermda.entity.People;
import com.bermda.entityImpl.PeopleImpl;
import com.bermda.entityImpl.Skirts;
import com.bermda.entityImpl.Socks;

public class Client {
    public static void main(String[] args) {
        People people = new PeopleImpl("zhang");
        Skirts skirts = new Skirts();
        Socks socks = new Socks();

        skirts.setPeople(people);
        socks.setPeople(skirts);
        socks.action();
    }
}

People

package com.bermda.entity;

public abstract class People {
    public abstract void action();
}

PeopleImpl

package com.bermda.entityImpl;

import com.bermda.entity.People;

public class PeopleImpl extends People {

    private String name;

    public PeopleImpl(String name) {
        this.name = name;
    }

    @Override
    public void action() {
        System.out.println(name+" equiped:");
    }
}

Clothes

package com.bermda.entity;

public class Clothes extends People{

    private People people = null;

    public void setPeople(People people) {
        this.people = people;
    }

    @Override
    public void action() {
        if(people != null){
            people.action();
        }
    }
}

Skirts

package com.bermda.entityImpl;

import com.bermda.entity.Clothes;

public class Skirts extends Clothes {
    @Override
    public void action() {
        super.action();
        System.out.print("skirts ");
    }
}

Socks

package com.bermda.entityImpl;

import com.bermda.entity.Clothes;

public class Socks extends Clothes {
    @Override
    public void action() {
        super.action();
        System.out.print("socks ");
    }
}

Tshirt

package com.bermda.entityImpl;

import com.bermda.entity.Clothes;

public class Tshirt extends Clothes {
    @Override
    public void action() {
        super.action();
        System.out.print("T-shirt ");
    }
}
Copyright © qgao 2021-* all right reserved,powered by Gitbook该文件修订时间: 2022-07-08 21:13:28

results matching ""

    No results matching ""