DI配合接口编程实例

spring 提倡我们使用接口编程 配合di技术 可以实现程序间的解耦
 
通过一个字母大小写转换的案例来体验 spring 配合di的接口编程
1, 先建立一个接口
2, 用两个类来实现接口
3,把对象配置到spring中
4,使用
 
接口
package com.example;
 
/**
* Created by admin on 2017/12/8.
*/
public interface ChangeString {
public String change();
}
 
写一个类 实现该接口,将大写字母转成小写字母,由于要用到spring 配置bean 因此这个类的属性
必须要有getter 和 setter 的方法
 
package com.example;
 
/**
* Created by admin on 2017/12/8.
*/
public class StringUpper implements ChangeString {
private String string;
 
@Override
public String change() {
// 把小写字母转成大写字母
System.out.println("小写转大写" + string.toUpperCase());
return string.toUpperCase();
}
 
public String getString() {
return string;
}
 
public void setString(String string) {
this.string = string;
}
}
 
再写一个类实现接口,将小写转成大写
package com.example;
 
/**
* Created by admin on 2017/12/8.
*/
public class StringLower implements ChangeString {
private String string;
@Override
public String change() {
System.out.println("大写转小写" + string.toLowerCase());
return string.toLowerCase();
}
 
public String getString() {
return string;
}
 
public void setString(String string) {
this.string = string;
}
}
 
配置到spring中 为那两个类配置bean
<bean id="tolower" class="com.example.StringLower">
<property name="string">
<value>Hello World</value>
</property>
</bean>
<bean id="toupper" class="com.example.StringUpper">
<property name="string">
<value>hello world</value>
</property>
</bean>
 
使用
package com.test;
import com.helloSpring.UserService;
import com.ApplicationUtils.AppUtils;
import com.example.StringUpper;
import com.example.StringLower;
import com.example.ChangeString;
 
/**
* Created by admin on 2017/12/3.
*/
public class SpringTest {
public static void main(String[] args){
// 1 得到spring 对象
// UserService us = (UserService) AppUtils.getApp().getBean("service");
// us.sayHelloSpring();
// StringLower stringLower = (StringLower) AppUtils.getApp().getBean("tolower");
// StringUpper stringUpper = (StringUpper) AppUtils.getApp().getBean("toupper");
// stringLower.change();
// stringUpper.change();
// 使用接口来调用 这样可以很方便的切换,业务逻辑,假如你在bean 里面配置了两个id 一样的 // bean 由于他们都是实现统一接口,所以当你要切换到其他的实现时,只需要修改bean
ChangeString changeString = (ChangeString) AppUtils.getApp().getBean("tolower");
changeString.change();
}
}
posted @ 2018-01-13 17:32  晴天小猫  阅读(731)  评论(0编辑  收藏  举报