其他分享
首页 > 其他分享> > LYH-H-主板显卡需求二次改变

LYH-H-主板显卡需求二次改变

作者:互联网

package democard;

public class Computer {
    public static void main(String[] args) {
        MainBoard mainBoard = new MainBoard();
        ICard dogCard = new DogCard();
        mainBoard.useCard(dogCard);
        //需求1 主板内部代码无需改变
        ICard catCard = new CatCard();
        mainBoard.useCard(catCard);
        //需求2 主板调用增加song,显卡类内部不改变
        Card dogCard1 = new DogCard();
        mainBoard.song(dogCard1);
        Card catCard1 = new CatCard();
        mainBoard.song(catCard1);
    }
}
package democard;


public class MainBoard {
    public MainBoard(){}
    public void useCard(ICard iCard){
        iCard.card();
    }
    public void song(Card card){
        card.song();
    }

}
package democard;

public class Card {
    public Card(){}
    public void song(){
        System.out.println("唱歌");
    }
}
package democard;

public class DogCard extends Card implements ICard{
    public DogCard(){}
    public DogCard(String msg){
        System.out.println("超清显示"+msg);
    }

    @Override
    public void card() {
        System.out.println("运行慢");
    }
}
package democard;

public class CatCard extends Card implements ICard{
    public CatCard(){}
    public CatCard(String msg){
        System.out.println("蓝光显卡"+msg);
    }

    @Override
    public void card() {
        System.out.println("运行快");
    }
}
package democard;

public interface ICard {
    void card();
}
回顾:主板与显卡实现
要求:增加新的显卡,主板类内部不要用修改。

操作-不会可参考代码:
1、定义显卡接口:ICard
2、定义两个真实显卡:DogCard、CatCard
3、定义主板,要使用显卡:userCard(参数)
   参数:使用的是接口类型 ICard
4、Computer类提供main方法:
1)、创建主板对象:MainBoard
2)、创建Dog显卡对象:DogCard
3)、主板使用显卡。

需求改变:
版本1、要换成Cat显卡,观察主板类是否需要改动。
操作:修改main方法,创建Cat显卡对象:CatCard

需求改变:
版本2、主板要调用显卡,须增加唱歌功能:song()
要求:现有显卡类不能修改内部代码,但可以增加新的类。
问题:如何实现?

标签:二次,song,DogCard,显卡,ICard,LYH,public,Card
来源: https://www.cnblogs.com/AMTK404/p/16350533.html