设计模式--1装饰设计模式

装饰设计模式主要有四个部分1抽象组件(爷爷) 2具体类对象,待装饰类(父亲)3抽象装饰类(母亲)4具体装饰类(自己)最后使用的是自己, 自己能有所需要的装饰后的功能.

  这个设计模式我自己本来理解的是,在原来有一个类class1的情况下想要对其增加功能,就创建一个新的类class 2,然后在新类class2的属性中有一个是原类class1的对象,然后在构造函数中对其进行初始化,随后如果需要增加什么功能就增加就好了.

  1. 现在看的视频有点疑惑,一开始难道就有一个抽象父类或者接口写好了吗.有点想不明白.

  2. 这样做也就只有装饰子类可以增加新功能而已,为什么还要抽象出装饰类的抽象父类

算了上代码吧

// 抽象接口,是最顶层的抽象组件
interface Coffee
{
    public double cost();
    
    public string info();
}

// 具体类, 也就是原来的待装饰的类
class OldCoffee implement Coffee
{
    // 价格属性
    public price = 10;

    // 打印信息
    public string name = "原来的咖啡";
    @Override
    public double cost(){
        return price;
    }
    @Override
    public string info(){
        return name;
    }

}

// 装饰者抽象类
class Decorate implement c{
    // 属性中有具体类的类对象
    OldCoffee cofe;

    // 构造函数, 将带装饰对象传入
    Decorate(Coffee c1)
    {
        this.cofe = c1;
    } 
    @Override
    public double cost()
    {
        // 这里进行具体的操作,目前在抽象类中,所有需要改变的都在具体类中改就行
        return this.cofe.price;
    }
xxx打这个好麻烦


}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值