接口不变性的情况下 怎么解决接口扩展的问题
[quote]如果需求经常变更的话 这样会不会变得很臃肿 [/quote]
应该不会! 接口是不变的! 只定义一些!常用或者 固定的方法!
在实现类里面 再做你的扩展! 就算你的业务需求 经常变(实际开发中 本来就是这样!) 也只需要在你的 扩展类里面做相应的修改! 不会太大影响!
使用适配器扩展, :D
[quote]接口不变性的情况下 怎么解决接口扩展的问题[/quote]
接口可以不变啊! 你的实现类你想咋扩展就咋扩展啊!
public interface Dao {
..............
}
public class DaoSupport extends HibernateDaoSupport implements Dao {
................
}
public class ServiceDaoSupport extends DaoSupport implements JsonProvider,XmlProvider,ValidationAware{
,,,,,,,,,,,,,,,,,
}
public interface JsonProvider extends Provider{
..............
}
不知道你想要怎么扩展,方法很多
在作设计时想想什么不变
把不变的写入接口.
变的东西就需要想办法来找到易变部分使用模式
或是直接抽象去掉细节问题.
PS:抽象会隐藏细节,同时会丢失细节.
接口不变,那么接口就不能用具体类做入参或者出参。用Object或者集合性质的基类。
提高接口的可扩展性,其实是牺牲程序代码的严谨性。