• 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设计模式不要错过,最近一直在学习人工智能,有学友欢迎一起探讨。

  • 相关阅读:
    Tech road one step Dec-5 to Dec-11
    Tech road one step Nov-28 to Dec-4
    Tech road one step 13-Nov to 20-Nov
    Unity 相机花式分屏
    Unity渲染
    Perfect Rectangle(完美矩形)
    Max Points on a Line(直线上最多的点数)
    Unity之CharacterController 碰撞问题总结
    cocos2dx 实现flappybird
    effectiveC++ 内存管理 学习笔记
  • 原文地址:https://www.cnblogs.com/wangyinxu/p/8444575.html
Copyright © 2020-2023  润新知