主板显卡两次需求变动版

回顾:主板与显卡实现
要求:增加新的显卡,主板类内部不要用修改。

操作-不会可参考代码:
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) {

    }
}

 

posted @ 2022-06-06 19:29  xiaoyongdata  阅读(136)  评论(0编辑  收藏  举报