关闭

面向接口编程的好处

3535人阅读 评论(0) 收藏 举报
分类:

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

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

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

 

 

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:569453次
    • 积分:4832
    • 等级:
    • 排名:第6157名
    • 原创:69篇
    • 转载:25篇
    • 译文:0篇
    • 评论:143条