美文网首页
面向接口的编程

面向接口的编程

作者: 回去生气0101 | 来源:发表于2018-10-15 10:57 被阅读0次

什么是接口?

  1. 接口定义了行为的协议,这些行为在继承接口的类中实现。
  2. 接口定义了很多方法,但是没有实现它们。类履行接口协议并实现所有定义在接口中的方法。
  3. 接口是一种只有声明没有实现的特殊类。

接口的优点:

  1. Client不必知道其使用对象的具体所属类。
  2. 一个对象可以很容易地被(实现了相同接口的)的另一个对象所替换。
  3. 对象间的连接不必硬绑定(hardwire)到一个具体类的对象上,因此增加了灵活性。
  4. 松散藕合(loosens coupling)。
  5. 增加了重用的可能性。

实例如下:

(用户持久化类)重构第一步——面向接口编程

  1. 设计用户持久化类的接口UserDao,代码如下:
public interface UserDao {
    public void save(User user);
    public User load(String name);
}
  1. 具体的持久化来必须要继承UserDao接口,并实现它的所有方法。我们还是首先实现内存持久化的用户类:
public class MemoryUserDao implements UserDao{
    private static Map users = new HashMap();;
    static{
        User user = new User("Moxie","pass");
        users.put(user.getName(),user);
    }
 
    public void save(User user) {
        users.put(user.getId(),user);
    }
 
    public User load(String name) {
        return (User)users.get(name);
    }
}

MemoryUserDao的实现代码和上面的MemoryUserPersist基本相同,唯一区别是MemoryUserDao类继承了UserDao接口,它的save()和load()方法是实现接口的方法。

重构第四步-IoC容器

  1. 使用IoC容器,用户注册类UserRegister不用主动创建UserDao实现类的实例。由IoC容器主动创建UserDao实现类的实例,并注入到用户注册类中。我们下面将使用Spring提供的IoC容器来管理我们的用户注册类。
    用户注册类UserRegister的部分代码如下:
public class UserRegister {
    private UserDao userDao = null;//由容器注入的实例对象
    
    public void setUserDao(UserDao userDao){
        this.userDao = userDao;
    }
    // UserRegister的业务方法
}
  1. 在其它的UserRegister方法中就可以直接使用userDao对象了,它的实例由Spring容器主动为它创建。但是,如何组装一个UserDao的实现类到UserRegister中呢?哦,Spring提供了配置文件来组装我们的组件。Spring的配置文件applicationContext.xml代码片断如下:
<bean id="userRegister" class="com.dev.spring.simple.UserRegister">
        <property name="userDao"><ref local="userDao"/></property>
</bean>
<bean id="userDao" class="com.dev.spring.simple.MemoryUserDao"/>

相关文章

  • 《Oracle Java SE编程指南》15-05:面向接口编程

    内容导航: 前言 1、接口的作用 2、面向接口编程 前言 接口的核心作用是面向接口编程。 面向接口编程 是一个非常...

  • Android 面向接口编程

    关键词:Android、POP、面向接口编程 、面向过程、面向协议 一、概述 面向接口编程是面向对象编程的一种实...

  • Android 网络框架--Retrofit2 架构分析

    面向接口编程 面向接口编程,模块化编程的必备技能,其乃实现解耦,增强扩展性的重要手段。 面向接口编程具体指的是什么...

  • 8、使用注解开发

    8.1:面向接口编程 大家之前都学过面向对象编程,也学习过接口,但在真正的开发中,很多时候我们会选择面向接口编程 ...

  • 面向指针编程(一)

    面向对象编程,面向设计模式编程(亦即设计模式),面向接口编程,面向模板编程(亦即泛型编程),面向函数编程(亦即函数...

  • iOS面向接口编程(面向protocol编程)

    iOS面向接口编程(面向protocol编程) 前言 面向接口编程已经是老生常谈了,但是最近在做项目重构中发现,团...

  • 面向接口编程与策略模式

    面向接口编程 & 面向对象编程 Interface-based programming, also known a...

  • Java知识框架 - 架构概念

    SOAimage.png 微服务image.png 面向接口编程 面向函数编程

  • MyBatis之使用注解开发

    六、使用注解开发 目录:面向接口编程、使用注解开发、CRUD、Lombok 1.面向接口编程 之前都学过面向对象编...

  • Java--面向接口编程

      面向接口编程是面向对象编程的一部分。   为什么需要面向接口编程?软件设计中最难处理的就是需求的复杂变化,需求...

网友评论

      本文标题:面向接口的编程

      本文链接:https://www.haomeiwen.com/subject/dyzxzftx.html