1. 程式人生 > >面向介面程式設計的好處

面向介面程式設計的好處

面向介面程式設計就是面向抽象程式設計、面向規範程式設計,它帶來的最大的好處便是解耦、增強擴充套件性、遮蔽變化

舉例:非單例的情況,側重於強調[擴充套件性強]

//命令介面
public interface ICommand{
    void doCommand();
}

//命令1
public class Command1 implements ICommand{}

//命令2
public class Command2 implements ICommand{}

//命令執行器
public class CommandExecutor{
    public void execute(ICommand command){        
    //略    
    }
}

//命令工廠
public class CommandFactory{
    ICommand getCommand(string type){
        //通過type查詢配置檔案,然後反射建立Command
    }
}

public class Client{
    public static void main(String args[]){
        CommandFactory f=new CommandFactory();
        ICommand c1 = f.getCommand("1");
        ICommand c2 = f.getCommand("2");
        CommandExecutor ce = new CommandExecutor();
        c.execute(c1);
        c.execute(c2);
    }
}

CommandExecutor的execute方法不關心是傳過來的是什麼命令,只管執行。

增加新的命令實現類,對CommandExecutor沒有任何影響。

舉例二:單例時的情況 ,側重於強調[遮蔽變化]

1、最最常見的DAO模式,程式執行的時候針對一個DAO介面只有一個實現存在於jvm中,這種情況下雖然在執行時無法實現介面和實現的一對多關係,但當某天需要針對另一種資料庫進行移植的時候,只需要DAO的實現發生變化即可,呼叫DAO的Service層不用任何變化。

2、還有最最常用的Servlet,我們在編寫自己的Servlet程式的時候,用的是HttpServletRequest介面和HttpResponse介面而不是具體的實現,那麼我們的程式可以運行於Tomcat上,可以運行於Jetty上,可以運行於WebLogic上,而無需任何更改、變化。