接口不变性的情况下 怎么解决接口扩展的问题

接口不变性的情况下 怎么解决接口扩展的问题

[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或者集合性质的基类。
提高接口的可扩展性,其实是牺牲程序代码的严谨性。