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