装饰器模式

This commit is contained in:
2020-02-28 14:49:59 +08:00
parent 40f4161a3e
commit 09e04da200
4 changed files with 9 additions and 6 deletions

View File

@@ -11,11 +11,11 @@ package top.fjy8018.designpattern.pattern.structural.decorator.before;
* @date 2018-09-27 16:56 * @date 2018-09-27 16:56
*/ */
public class Battercake { public class Battercake {
protected String getDesc() { public String getDesc() {
return "煎饼"; return "煎饼";
} }
protected int cost() { public int cost() {
return 8; return 8;
} }
} }

View File

@@ -8,12 +8,12 @@ package top.fjy8018.designpattern.pattern.structural.decorator.before;
*/ */
public class BattercakeWithEgg extends Battercake { public class BattercakeWithEgg extends Battercake {
@Override @Override
protected String getDesc() { public String getDesc() {
return super.getDesc() + " 加一个鸡蛋"; return super.getDesc() + " 加一个鸡蛋";
} }
@Override @Override
protected int cost() { public int cost() {
return super.cost() + 1; return super.cost() + 1;
} }
} }

View File

@@ -6,12 +6,12 @@ package top.fjy8018.designpattern.pattern.structural.decorator.before;
*/ */
public class BattercakeWithEggSausage extends BattercakeWithEgg { public class BattercakeWithEggSausage extends BattercakeWithEgg {
@Override @Override
protected String getDesc() { public String getDesc() {
return super.getDesc() + " 加一根香肠"; return super.getDesc() + " 加一根香肠";
} }
@Override @Override
protected int cost() { public int cost() {
return super.cost() + 2; return super.cost() + 2;
} }
} }

View File

@@ -6,6 +6,9 @@ import top.fjy8018.designpattern.pattern.structural.decorator.after.ABattercake;
import top.fjy8018.designpattern.pattern.structural.decorator.after.AbstractBattercake; import top.fjy8018.designpattern.pattern.structural.decorator.after.AbstractBattercake;
import top.fjy8018.designpattern.pattern.structural.decorator.after.EggBattercake; import top.fjy8018.designpattern.pattern.structural.decorator.after.EggBattercake;
import top.fjy8018.designpattern.pattern.structural.decorator.after.SausageBattercake; import top.fjy8018.designpattern.pattern.structural.decorator.after.SausageBattercake;
import top.fjy8018.designpattern.pattern.structural.decorator.before.Battercake;
import top.fjy8018.designpattern.pattern.structural.decorator.before.BattercakeWithEgg;
import top.fjy8018.designpattern.pattern.structural.decorator.before.BattercakeWithEggSausage;
@Slf4j @Slf4j
class BattercakeTest { class BattercakeTest {