不考虑webservice,话说如果用spring注入,在扩展,解耦都很好用,还用给service,dao层设计接口吗????
解决方案 »
- 解析jar文件
- spring jdbc的错 ,帮忙看看什么问题啊?
- 从 Win 移植到 Linux 遇到的问题
- 这期的<<程序员>>精采,J2EE Without EJB
- 菜鸟请教,如何建立JNDI数据源?
- 请问Applet画的线在页面如何实现点击线弹出消息框?
- 请有经验的人给出在struts下写访问控制的方法
- 安装v5.0.25和v5.0.26-Beta 试探
- CMP 又来新问题!
- 请教在Tomcat4中如何建立连接池或数据源?在Tomcat321中是否也可以?
- 一个简单servlet+jsp+javabean报错 405 HTTP method POST is not supported by this URL
- 过滤器路径的问题
IOC那是通过动态代理实现的,如果没有了接口,请问spring还如何为你生成代理对象给你使用?如何来实现IOC......
<property name="user">
<ref bean="user" />
</property>
</bean>
<bean id="user" class="com.mytest.domain.User"/>public class SpringTest {
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public static void main(String[] args) {
ApplicationContext context=new ClassPathXmlApplicationContext("beans.xml");
SpringTest st=(SpringTest)context.getBean("st");
st.getUser();
}
}
<property name="user">
<ref bean="user" />
</property>
</bean>
<bean id="user" class="com.mytest.domain.User"/>public class SpringTest {
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public static void main(String[] args) {
ApplicationContext context=new ClassPathXmlApplicationContext("beans.xml");
SpringTest st=(SpringTest)context.getBean("st");
st.getUser();
}
}
其实我的意思是。。举个例子,action要调用service层,如果service层写了接口以及它的实现类serviceImpl,用不用接口只是在<bean>中的class不同而已,那何不直接省去接口,因为每次写方法都要写两次,很麻烦。
多态不就是为了降低代码耦合度吗。。spring ioc容器已经可以帮助解耦了,为什么还要重复使用?
一个人访问,内存中就会存放被new出一个对象,如果是一万人或者更多人呢,内存中会存放多少对象,这时候你得好好考虑java的垃圾回收机制了。
所以在创建对象时,能不new就不new
service层最好面向接口编程,你的程序会易读,他人也容易理解你写的是什么。
个人而言,
我觉得还是2个比较重要吧:
1.接口是一种规范,例如:多人参与项目,之间肯定会有 方法互调。首先把接口定义好了,人家根本不关心你如何去实现,只要得到他想要的结果,这难道不就是Java一直提倡的思想吗。
2.还有一种思想,我觉得随便什么东西,能够放入配置文件去管理的尽量放到配置文件管理, 因为真实项目严谨的话,假如你在java代码里面直接new(注:一个项目修改java代码都是很危险的操作,尤其是经过测试人员数次的测试,还有你修改源代码就必须重新打版本,我不知道你们的项目版本是如何管理的),是不是需要重新编译一次?然后更新至服务器,还是你把它放入配置的文件的话。
这两个可以有联系,但是不能混在一起。
Spring支持没有接口的bean注入,这只能说明Spring的灵活性。
至于为什么要面向接口编程,代码写多了自然就明白鸟