繁体   English   中英

PHP中的接口抽象类? 尊重SRP

[英]Abstract Class of Interface in PHP? Respecting SRP

我需要设计一个似乎很简单的系统,该系统可以对从Webform(用户输入数据)传递的数据进行一些计算。 Webform本身是可丢弃的,但后端代码应继续用于新项目中,我将很快开始,该项目将处理并根据自己发现的数据进行这些计算。

我最初以为策略模式非常适合这些后端课程,但是当我星期五开始编写它们时,我的确感到很惊讶,我的4个课程之间的代码可能有95%的重复。 虽然我觉得如果决定改变公式或数据交互方式,我当前的解决方案会很好用,但是现在,代码重复使我感到不安。

基本内容如下:

我们有4个销售程序,每个程序都有5个属性,每个程序之间都有不同的属性,但是计算所需知道的公式是相同的。

目前,我有一个接口,其中包含一个单独的函数calculate和四个实现该功能的类(每个程序一个)。 一切都很好,直到我很快意识到,我的课程中实现的calculate和其他功能都完全相同。 我的4个文件中唯一不同的是5个值。

我最初的设计计划是进行构建,以便可以从Web窗体的下拉菜单中键入内容,并传递一个包含我的值的类并执行计算。 自从我退后一步,我发现我错过了那个标记,需要重新评估我的结构。

我已经对Abstract类甚至Decorator模式进行了一些研究,但似乎并没有立即单击。 我喜欢构建它的想法,以便将来可以轻松引入其他销售程序,但是我不喜欢要求某人基本上进入我的文件并复制该文件并在顶部调整变量,这看起来非常lop

简单的解决方案似乎只是编写一个单个的Calculator类,并根据用户选择的内容传入这些变量的数组。 我可能正试图对此进行过度设计,但是采用简单的解决方案也感觉不合适。

似乎您可能正在寻找策略模式;)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM