- 論壇徽章:
- 0
|
關(guān)于java中接口的認(rèn)識(shí)(不知理解的是否正確)
樓主的代碼上還是沒(méi)有降低耦合度。
我舉個(gè)別的例子吧:
- 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();
- }
- }
- }
復(fù)制代碼
由于使用了接口,Circus不再理會(huì)參加演出的具體的動(dòng)物演員的類,只要是實(shí)現(xiàn)了AnimalActor接口的類都可以參加Big Show。
如果沒(méi)有使用接口,那么Circus的代碼中就要包含Horse,bear, dog類的引用,F(xiàn)在Circus的代碼和具體可能有多少種動(dòng)物無(wú)關(guān),這就是解藕 |
|