面向接口编程的好处

面向接口编程就是面向抽象编程、面向规范编程,它带来的最大的好处便是解耦、增强扩展性、屏蔽变化

举例:非单例的情况,侧重于强调[扩展性强]

//命令接口
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上,而无需任何更改、变化。

 

 

 

阅读更多
个人分类: java
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭