我们都知道在java中有(OCP:Open/Closed Principle)原则,对扩展开放,对修改关闭.但是在实际中如果使用传统的开发方式很难做到这一点,比如如下场景:web service dao层中增加用户业务逻辑上有变化,如何才能做到不改变原代码的情况下,对新增功能进行扩展呢?
这里就需要用到java的面向接口编程.接下来将通过这一案例对面向接口编程做演示.
首先:原有环境如下图
原环境.JPG
service层(模拟功能):
package com.xfz.service;
public class UserService1 {
public void addUser(){
System.out.println("增加用户");
}
}
web层(模拟功能测试)
package com.xfz.web;
import com.xfz.service.UserService1;
public class UserTest {
public static void main(String[] args) {
UserService1 user = new UserService1();
user.addUser();
}
}
现在业务层用户功能更新,由于不能在原代码上进行修改,所以这里在业务层新建类UserService2来进行模拟: