首页 > 代码库 > 继承和组合、抽象类和接口
继承和组合、抽象类和接口
继承和组合的使用原则:
1、很多资料中提到的一点,如果两个类之间是is-a的关系,那么就使用继承,而如果是has-a的关系就使用组合。
但是这也不是代表is-a是使用继承的绝对理由,有时候为了消除继承关系带来的耦合,使用组合可以更好的实现封装细节。
如果在一个系统中大量应用继承,继承层次深了,那么会给系统的开发和维护带来困难。
2、无论何时,如果你使用继承,但是又不想向上转型,那么这个时候就应该慎重选择,只要有可能,就应该考虑使用组合来达
到自己的目的。因为组合在类的运行期间通过类的属性来改变类的行为,这样更加灵活,并且可以随时出现。
3、还有一个重要原则是方法是否共享。
抽象类和接口的选用原则:
1、如果多个派生类的方法中没有共同的地方,那么就使用接口作为抽象,否则就使用抽象类作为抽象
2、当系统某个地方只需要定义对象的行为,而不需要实现对象的行为,这个时候就尽量使用接口。
上面只是个简单的介绍,读者还需要慢慢的品味话中的含义
1、很多资料中提到的一点,如果两个类之间是is-a的关系,那么就使用继承,而如果是has-a的关系就使用组合。
但是这也不是代表is-a是使用继承的绝对理由,有时候为了消除继承关系带来的耦合,使用组合可以更好的实现封装细节。
如果在一个系统中大量应用继承,继承层次深了,那么会给系统的开发和维护带来困难。
2、无论何时,如果你使用继承,但是又不想向上转型,那么这个时候就应该慎重选择,只要有可能,就应该考虑使用组合来达
到自己的目的。因为组合在类的运行期间通过类的属性来改变类的行为,这样更加灵活,并且可以随时出现。
3、还有一个重要原则是方法是否共享。
抽象类和接口的选用原则:
1、如果多个派生类的方法中没有共同的地方,那么就使用接口作为抽象,否则就使用抽象类作为抽象
2、当系统某个地方只需要定义对象的行为,而不需要实现对象的行为,这个时候就尽量使用接口。
上面只是个简单的介绍,读者还需要慢慢的品味话中的含义
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。