标签:style blog color io ar sp 数据 div on
/* 一般情况下接口感觉没什么用。增删改查我们有一个实现类就可以搞定。处理的东西在多了可以分多个包。 * 类似于com.user.*;com.group.*;com.role.*; * * 所以普通做法是这样的: */ public class SportsCar { public void save(Car car){}; public SportsCar update(){}; public int delete(){}; public ...{} } public class MailCar { public void save(Car car){}; public MailCar update(){}; public int delete(){}; public ...{} } public class PoliceCar { public void save(Car car){}; public PoliceCar update(){}; public int delete(){}; public ...{} } ...// 然后有很多个的时候发现里面的操作完全相同这时候就需要接口了。 public interface ICar { public void save(Car car) throws Exception; public PoliceCar update() throws Exception; public int delete() throws Exception; public ...{} throws Exception } public class PoliceCarImpl implements ICar { implements method...{}; } public class MailCarImpl implements ICar { implements method...{}; } // 这样做的好处是如果需要重构方法的时候只需要修改接口即可。 // 如果DAO方法也是用接口实现的。 public interface IPoliceCarDAO { void save(Car car) throws Exception; } public interface IMailCarDAO { public int delete() throws Exception; } public class CarOpraeteImpl implements PoliceCarDAO,MailCarDAO { public void save(Car car){...} public int delete(){...} } /* * 然后这样就可以实现程序的松耦合 */ public class CarOpraeteService { public IMailCarDAO mc; public void setMc(IMailCarDAO mc){ this.mc = mc; } public void save(Car car){ // 这里调用的是接口save方法。所以具体实现方法。这个类并不知道。呵呵,这就是我认为的 所谓的松耦合吧? // this.mc = new CarOpraeteImpl(); 相当于这样初始化了接口。 this.mc.save(car); } } // 下面调用Action的时候也是如此做法。Action并不知道ServiceInterface类做了什么。 // 所有对应的Service接口都可以被一个类所实现。这样ServiceImpl实现类在内部还可以有自己的方法处理数据的时候就不会被外界所知。 // 总结三点内容:接口安全、松耦合、修改起来容易。
如上是个人见解。不知道对不对,如有交流请加QQ290010324
标签:style blog color io ar sp 数据 div on
原文地址:http://www.cnblogs.com/xiezhenhai/p/4031038.html