我需要了解如何使用接口,以便将实现类中的常用方法组合在一起。
显而易见的方法是使用一个实现接口的抽象类和从该类继承的子类。这不会违反编程到界面的整个概念吗?
答案 0 :(得分:1)
接口是与您的客户签订的合同。您提供某些功能。客户端只考虑接口,并且不需要对您的类或类如何实现该接口感兴趣。
Abstract类,是一种实现技术,允许您从接口的实现中重构一些公共代码。因为这不妨碍界面的使用,所以没有违规。
您可以使用工厂模式隐藏用户的实施细节:
Interface myWorker = TheFactory.make( {some expression of the client's needs } );
所有客户看到的都是工厂和界面。
So Interface适用于客户端,Abstract类适用于实现者。