多态运用实例
多态应用实例
/* 主板,主板可以插入网卡。 直接描述主板以及网卡, 并在主板中使用该网卡, 这样的设计虽然当然可以应用,但缺少扩展性。比如又来一个声卡该如何呢?难道要修改主板不成? 找这些事物的共性。 主板是为了扩展自己的功能,而是提高后期的可维护性。 先对这些板卡的共性进行抽取。 定义一个规则,这个规则出现的就可以降低主板和板卡直接的耦合性。 在描述主板的时候,可以预先使用该规则。 无论后期出现什么样的出现什么样的板卡,只要该板卡符合了这个规则,主板就可以使用这个板卡。 */ interface PCI { void open(); void close(); } class MainBoard { void usePCI(PCI p) { p.open(); p.close(); } } class NetCard implements PCI { public void open(){System.out.println("netCard open");} public void close(){System.out.println("netCard close");} } class SoundCard implements PCI { public void open(){System.out.println("SoundCard open");} public void close(){System.out.println("SoundCard close");} } class MainBoardDemo { public static void main(String[] args) { MainBoard mb = new MainBoard(); // mb.usePCI(new NetCard()); mb.usePCI(new SoundCard()); } }