面向接口编程的好处

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

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

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

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值