广泛的接口实现(和一般设计模式帮助)

时间:2012-12-12 00:25:20

标签: php design-patterns interface

我的问题与Interface Implementation (Interface Segregation Principle)密切相关,但我非常感谢您提供更多建议。

我有两个提供邮资报价的邮资API - 唯一的共同点就是肥皂。 我编写了我的应用程序代码,通过编写一个“邮件驱动程序”界面与这些API进行交互,这两个界面都包含API实现。然后,我使用“邮资计算器”课程,通过他们的通用界面使用这些“驱动程序”,以计算邮资成本,而不知道它是如何完成的。

我的问题是,这些API是如此不同(一个需要凭据作为方法参数传入,而另一个使用xml文件作为凭据,一个计算总重量的邮资成本,另一个计算包裹详细信息)我是不确定使用接口来抽象我的代码是最好的方法吗?它开始感觉像是将条件代码编码到“邮资计算器”类中,并且直接使用API​​会更干净,更优雅(尽管不太灵活,未来证明)。

欢迎任何建议。顺便说一句,我用PHP写作,但我更多的是“一般原则”的建议。

1 个答案:

答案 0 :(得分:0)

我同意Wrikken,您可以随时将身份验证界面传递给邮资界面。那么你只是将差异传递给真正不同的阶级。

同样,您可以创建用于计算邮资的界面,可能是IPostageSpecificationByWeight和IPostageBy?。然后,您可以将它们注入到服务使用的基类或接口中。

您可以使用抽象类来处理此相同的概念,该抽象类在派生类中实现身份验证方法和计算方法,其中使用它们的常用方法位于抽象类中,然后您只有一个接口。有很多方法可以抽象出来,这些只是几个选项。