zoukankan      html  css  js  c++  java
  • java中的面向接口编程(技术分享)

    今天给大家介绍的是面向接口编程:

    首先需要知道为什么要面向接口编程,会给我们带来什么好处,在写这篇文章之前,我也看过很多博客跟帖子上的介绍,不过说句实话讲解的很一般,其实面向接口编程的最主要两个字在接口上,接口带来的好处就是降低耦合性(解耦);可能一些人不太了解这个词,我来用一个实例做介绍:

    现在我有两个类代码如下

    public class Dao{

      public User findByName(String username){

        //这个方法实现的是去excel中查找username这个用户

      }

      public void addUser(User form){//这是一个向excel写入的数据(当然你要熟悉poi技术,如果是xml就需要熟悉dom4技术),添加用户的方法实现}

    }

    public class Service{

      Dao  dao = new Dao();

      public void login(User form){//这是一个模拟的登录方法依赖的是Dao类中的两个方法}

    }

    如果现在我们公司决定不在使用excel作为数据存储设备,而是换成效率更高的数据库;

    其实问题大家都知道了,如果要修改代码,我们就需要重新做测试,这会消耗很大的成本,那么我们就需要在不修改代码的基础上完成需求;

    从而引出了Spring之父的理念面向接口编程,即InterfaceDao  dao = new Dao();即使这样大家还是发现代码还是死的,还需要去new对象,虽然这个接口InterfaceDao{

      findByName(String username);

      addUser(User form);

    }有了,但是仍然没有满足我们的需要;

    这里给大家介绍一种设计模式,————工厂设计模式:

    我们不需要通过new来获取对象,而是通过工厂帮我们生产一个对象,其底层依赖的反射原理,代码如下

    配置文件一定要放在类路径下,如果是eclipse就是src下面,否则加载不到,user.properties为配置文件名,内容是键值对,(我的习惯键用)接口名=(包名别丢)实现类名;

    由此,我们Service类中的代码变成了——InterfaceDao  dao = UserDaoFactory.getUserDao()

    到此我们无论我们怎么修改Dao类中的代码,都不用修改Service中代码;只需要修改user.proerpties配置文件;

    下面我们实现一个Dao类用mysql数据库代码如下:

    addUser(User form)方法就自己实现吧,如果有问题可以关注博客,这个类就完成了,只要修改掉user.properties中的配置类,就可以实现数据库与excel之间的切换,达到解耦的目的;欢迎随时提问,下一期会分享MVC设计模式不要错过,最近一直在学习人工智能,有学友欢迎一起探讨。

  • 相关阅读:
    PBE加密 .net 实现
    手把手教你写一个windows服务 【基于.net】 附实用小工具{注册服务/开启服务/停止服务/删除服务}
    fish redux 个人理解
    .net Core 图片验证码 基于SkiaSharp实现
    .net core webapi jwt 更为清爽的认证 ,续期很简单(2)
    js删除数组对象中符合条件的数据
    编译.net .net Core程序 代码,仅做备份
    Mybatis架构相关的知识
    java选择题知识总结大全
    Mybatis详解(二) sqlsession的创建过程
  • 原文地址:https://www.cnblogs.com/wangyinxu/p/8444575.html
Copyright © 2011-2022 走看看