装饰模式,制作一个蛋糕java

import java.text.DecimalFormat;

 //抽象组件组件
interface mkcake
{
    public void cake();
}
class  Cake implements mkcake
{

    @Override
    public void cake() {
        // TODO Auto-generated method stub
        System.out.println("一个成型蛋糕");
        
    }
     
}
//装饰接口
abstract class Decorator implements mkcake
{
    mkcake m;
    
      public Decorator(mkcake m)
      {
          this.m=m;
      }
    
    }
class AddMilk extends Decorator
{
    public AddMilk(mkcake m)
    {
        super(m);
    }

    @Override
    public void cake() {
        // TODO Auto-generated method stub
        m.cake();
        System.out.println("加了牛奶");
        
    }

    
    
}
class AddEgg extends Decorator
{
    public AddEgg(mkcake m)
    {
        super(m);
    }

    @Override
    public void cake() {
        // TODO Auto-generated method stub
        m.cake();
        System.out.println("加了鸡蛋");
        
    }

    
    
}




public class 装饰模式 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //开始制作蛋糕
        mkcake c=new Cake();
        mkcake m=new AddMilk(new AddEgg(new Cake()));
        m.cake();

    }

}
原文地址:https://www.cnblogs.com/hansongjiang/p/3854302.html