主板显卡两次需求变动版
回顾:主板与显卡实现 要求:增加新的显卡,主板类内部不要用修改。 操作-不会可参考代码: 1、定义显卡接口:ICard 2、定义两个真实显卡:DogCard、CatCard 3、定义主板,要使用显卡:userCard(参数) 参数:使用的是接口类型 ICard 4、Computer类提供main方法: 1)、创建主板对象:MainBoard 2)、创建Dog显卡对象:DogCard 3)、主板使用显卡。 需求改变: 版本1、要换成Cat显卡,观察主板类是否需要改动。 操作:修改main方法,创建Cat显卡对象:CatCard 需求改变: 版本2、主板要调用显卡,须增加唱歌功能:song() 要求:现有显卡类不能修改内部代码,但可以增加新的类。主板类就更不能修改了。 问题:如何实现?
提示:我们一直要学习一种解决问题的处理方式,即当需求改变时,“原来”的代码不能修改,但是可以通过增加新的类来解决。
参考代码:
package com.iit.proxy; interface ICard { void show(String msg); } class DogCard implements ICard { public void show(String msg){ System.out.println("dog:"+msg); } } class CatCard implements ICard { public void show(String msg){ System.out.println("Cat:"+msg); } } class MainBoard { //核心代码:参数类型用的是接口 public void userCard(ICard card, String msg ){ card.show(msg); } }
main方法代码:
package com.iit.proxy; public class Computer { public static void main(String[] args) { } }
本文来自博客园,作者:xiaoyongdata(微信号:xiaoyongdata),转载请注明原文链接:https://www.cnblogs.com/xiaoyongdata/p/16349453.html