一个抽象类,该抽象类中引用一个接口变量,同时,定义一个抽象方法abstract public doAct();该抽象类采用2种注入方式的其中一种:
一: 在该抽象类中定义一个方法,该方法接受一个字符串参数,在该方法中,根据传入的字符串的取值的不同,分别实例化不同的引用接口类的具体实现类,然后,将实例化后的对象赋值给引用接口变量;
二: 通过在抽象类中的setter方法或者构造方法中传入引用接口类的实现类的对象,然后将传入的对象赋值给引用接口对象变量。
其中,第一种方法更多的隐藏了细节,类似简单工厂模式。
继承上述抽象类,在继承类中实现抽象方法doAct(),在该方法中就可以使用父类抽象类中的引用接口变量了。 且更加客户端代码中注入的不同的具体的接口实现类,引用的接口变量的实际也不相同。