标签:二次 song DogCard 显卡 ICard LYH public Card
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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。