设计模式-组合

public class BackCard {
    public string UserName { get; set; }
    public string id { get; set; }
    public void CunQian() 
    { 
    }
    public void Overdraft()
    { 
    }
}

// 这样继承,CCBBank没有Overdraft方法,就会报错
//public class CCBBank : BackCard { 

//}

// 把属性用基础类和接口分离开来
public interface ICard {
    void CunQian();
}
public interface ICreditCard : ICard
{
    void CunQian();
    void Overdraft();
}
public class BaskBank {
    public string UserName { get; set; }
    public string id { get; set; }
}
public class CCBBank : BaskBank, ICard
{
    public void CunQian()
    {
        throw new NotImplementedException();
    }
}

基础属性放到基类里,使用不同功能的接口,这样原来的接口和基类都不用改,避免了开闭原则。

posted @ 2021-11-19 16:33  vba是最好的语言  阅读(36)  评论(0编辑  收藏  举报