For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
本文达内武汉java开发培训机构小编主要想和大家一起来学习一下java面向接口编程的符合开闭、依赖倒置原则、增强拓展性的3个作用。
开闭原则OCP(Open-Close Principle): 对拓展开放、对修改关闭。
依赖倒置原则DIP(Dependency Inversion Principle): 抽象不应该依赖于细节、细节应该依赖于抽象
在软件开发中,因为业务的不断变化,系统拓展性是时刻存在的。以数据库为例,在没有引入接口之前,项目一开始因为业务量较小的原因,设计的时候我们会是直接通过代码来实现对某一数据库的一系列操作,抽象出来就如下图显示:
但是随着业务的增多和复杂,单个传统关系型数据库并不能满足我们的业务,需要引入非关系型数据库做中间层和引入更先进数据库做数据存储,抽象出来如下:
很明显,因为我们一开始业务简单就只考虑了一种数据库,导致操作数据库的代码强依赖了具体的实现类,如今因为业务变化需要引入了其他不同的数据库,为了达到这个目的,我们不得已要去修改原来业务的代码,这样的修改显然是违背了面向对象编程的开闭原则、依赖倒置原则和带来了潜在的风险,因此,这样的设计并不合理,故我们引入了接口,抽象出来如下:
有了接口这一标准,我们的JAVA程序无需直接依赖对应的实现类,每种数据库厂商实现JDBC标准,给使用者提供一个驱动,如果我们因为业务变动需要引入第三方数据库,只需要修改对应的驱动即可,不需要变动原来的逻辑,不仅满足了业务代码不再依赖实现类,而是实现类依赖接口即依赖倒置原则「抽象不应该依赖于细节,细节应该依赖于抽象」和开闭原则[对拓展开放,对修改关闭],还避免了改动带来的潜在风险。
接口中定义了规范、不同的实现者去根据自己需求实现规范,后面如果有新的需求,可以创建新的实现者实现接口规范即可,这样做到了代码的松耦合。
最常见的例子就是: JDBC(JAVA数据库连接),它是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,是Java访问数据库的标准规范。
无规则聚不成方圆,如果没有JDBC的话访问的数据库操作就没有了规范,所有的数据库厂商都会有自己的一套数据库的访问规则,一旦公司的数据库从切换数据库,整个涉及到数据库的代码都需要重新写、这对开发者来说简直是世界末日。
所以sun公司统一了数据库的规范,不同的数据库厂商需要提供实现了这个规范的一个驱动,用于开发者连接数据库时进行通信,有了JDBC,开发者不需要关注如何去编写针对不同数据库的访问代码,变动数据库时,只需要去切换不同的驱动即可。
PS:JDBC是接口,驱动是接口的实现,没有驱动将无法完成数据库连接,从而不能操作数据库! 每个数据库厂商都需要提供自己的驱动,用来连接自己公司的数据库,也就是说驱动一般都由数据库生成厂商提供。
武汉达内IT培训免费试听课程火热报名中,带你轻松入行,26大课程全国45个城市,129家中心均可就近学习,学完后,达内老师会帮助进行面试辅导,在面试前,就带你跨过可能存在的坑,让你入职更加顺利。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请添加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。