- 论坛徽章:
- 0
|
关于java中接口的认识(不知理解的是否正确)
楼主的代码上还是没有降低耦合度。
我举个别的例子吧:
- import java.util.Iterator;
- import java.util.Vector;
- //Interface Decouble Example
- public class ChinaUnixJavaCircusShow{
- public static void main(String[] args) {
- Circus c = new Circus();
- c.addAnimalActors(new Bear());
- c.addAnimalActors(new Horse());
- c.addAnimalActors(new Dog());
- c.bigShow();
- }
- }
- interface AnimalActor {
- public void showBestPose();
- }
- class Bear implements AnimalActor {
- public void showBestPose() {
- System.out.println("This bear show!!");
- }
- }
- class Horse implements AnimalActor {
- public void showBestPose() {
- System.out.println("This horse show!!");
- }
- }
- class Dog implements AnimalActor {
- public void showBestPose() {
- System.out.println("This dog show!!");
- }
- }
- class Circus {
- private Vector actors = new Vector();
- public void addAnimalActors(AnimalActor a) {
- actors.add(a);
- }
- public void bigShow() {
- Iterator i = actors.iterator();
- while (i.hasNext()) {
- ((AnimalActor) i.next()).showBestPose();
- }
- }
- }
复制代码
由于使用了接口,Circus不再理会参加演出的具体的动物演员的类,只要是实现了AnimalActor接口的类都可以参加Big Show。
如果没有使用接口,那么Circus的代码中就要包含Horse,bear, dog类的引用。现在Circus的代码和具体可能有多少种动物无关,这就是解藕 |
|