class mouse{ public void sayhi(){}; } class dellmouse extends mouse { @override public void sayhi() { system.out.println("产品:戴尔鼠标"); } } class hpmouse extends mouse { @override public void sayhi() { system.out.println("产品:惠普鼠标"); } } class keyboard { public void kick(){}; } class hpkeyboard extends keyboard { @override public void kick() { system.out.println("产品:惠普键盘"); } } class dellkeyboard extends keyboard { @override public void kick() { system.out.println("产品:戴尔键盘"); } } //总的工厂接口 interface pcfactory { public mouse createmouse() ; public keyboard createkeyboard() ; } class hpfactory implements pcfactory { @override public mouse createmouse() { return new hpmouse(); } @override public keyboard createkeyboard() { return new hpkeyboard(); } } class dellfactory implements pcfactory { @override public mouse createmouse() { return new dellmouse(); } @override public keyboard createkeyboard() { return new dellkeyboard(); } } //当需要增加一个华硕工厂时: class asusmouse extends mouse { @override public void sayhi() { system.out.println("产品:华硕鼠标"); } } class asuskeyboard extends keyboard { @override public void kick() { system.out.println("产品:华硕键盘"); } } class asusfactory implements pcfactory { @override public mouse createmouse() { return new asusmouse(); } @override public keyboard createkeyboard() { return new asuskeyboard(); } } public class normfactory { public static void main(string[] args) { pcfactory hpfact = new hpfactory(); mouse hpm = hpfact.createmouse(); keyboard hpkbd = hpfact.createkeyboard(); pcfactory dellfact = new dellfactory(); mouse dellm = dellfact.createmouse(); keyboard dellkbd = dellfact.createkeyboard(); hpm.sayhi(); dellm.sayhi(); hpkbd.kick(); dellkbd.kick(); } }
打印结果如下:
产品:惠普鼠标 产品:戴尔鼠标 产品:惠普键盘 产品:戴尔键盘
如对本文有疑问, 点击进行留言回复!!
Android 4.0使用Kotlin调用C语言以及汇编语言
Java Class.forName()用法和newInstance()方法原理解析
网友评论