【发布时间】:2013-12-03 22:19:29
【问题描述】:
我需要了解如何使用接口,以便将实现类之间的常用方法组合在一起。
显而易见的方法是有一个实现接口的抽象类和从这个类继承的子类。这不会违反接口编程的整个概念吗?
【问题讨论】:
-
您能否更具体地说明究竟是什么?
标签: design-patterns architecture interface
我需要了解如何使用接口,以便将实现类之间的常用方法组合在一起。
显而易见的方法是有一个实现接口的抽象类和从这个类继承的子类。这不会违反接口编程的整个概念吗?
【问题讨论】:
标签: design-patterns architecture interface
接口是与您的客户签订的合同。您提供某些功能。客户只考虑接口,不需要对您的一个或多个类如何实现该接口感兴趣。
抽象类是一种实现技术,允许您从接口的实现中重构一些通用代码。由于这不会妨碍接口的使用,因此没有违规。
您可以使用工厂模式向用户隐藏实现的细节:
Interface myWorker = TheFactory.make( {some expression of the client's needs } );
客户看到的只是工厂和界面。
所以接口是给客户的,抽象类是给实现者的。
【讨论】: