Java基础面试操作题:Java代理工厂设计模式 ProxyFactory 有一个Baby类,有Cry行为,Baby可以配一个保姆 但是作为保姆必须遵守保姆协议:能够处理Baby类Cry的行为,如喂奶、哄睡觉。

package com.swift;

public class Baby_Baomu_ProxyFactory_Test {

    public static void main(String[] args) {
        /*
         * 有一个Baby类,有Cry行为,Baby可以配一个保姆,
         * 但是作为保姆,必须遵守保姆协议:能够处理Baby类Cry的行为,如喂奶、哄睡觉。
         * 请根据以上描述设计一套代理设计模式
         */
        
        Baby baby=new ProxyFactoryBaby(new Baomu("一号保姆"));
        baby.cry();
    }
}

class Baby{
    
    public void cry() {
        System.out.println("哇哇哇,baby is crying......");
    }
}

interface LookBabyProtocal{
    void feedBaby();
    void hongBaby();
}

class Baomu implements LookBabyProtocal{
    
    private String name;
    public Baomu(String name) {
        this.name=name;
    }

    @Override
    public void feedBaby() {
        System.out.println("Baomu feed baby..");
    }

    @Override
    public void hongBaby() {
        System.out.println("Baomu hong baby..");
    }
    
}

class ProxyFactoryBaby extends Baby{
    
    Baomu baomu;

    public Baomu getBaomu() {
        return baomu;
    }
    public void setBaomu(Baomu baomu) {
        this.baomu = baomu;
    }
    public ProxyFactoryBaby(Baomu baomu) {
        this.baomu=baomu;
    }
    
    @Override
    public void cry() {
        super.cry();
        baomu.feedBaby();
        baomu.hongBaby();
    }
    
    
}

 

posted @ 2018-01-17 10:40  Advancing-Swift  阅读(315)  评论(0编辑  收藏  举报