我正在寻找有关模块化设计形式的文章或其他文章。不幸的是,在我丢失它之前我没有完全阅读这篇文章,所以这可能有点模糊,但我会尽量具体并解释我正在尝试做的事情,以便有人可以推荐其他文章.
有问题的文章(博客文章)是由一位程序员撰写的,根据他的经验,设计软件的最佳方式是采用一种模块化或基于组件的方法,以便可以为相同或相似软件的不同版本选择不同的组件。
我从中记得的主要内容是一个图表,在一个轴上显示不同的程序,在另一个轴上显示不同的组件,并显示如何为特定程序选择特定组件。
我正在寻找这个的原因是我正在处理一些非面向对象的 PHP 代码,这些代码太大而无法修改为面向对象。该程序为每个站点显示具有不同但相似规则的不同品牌 Web 应用程序。目前大部分代码如下所示:
if($_SESSION['country'] === "Canada" && $_SESSION['brand'] === "X"
&& $_SESSION['type'] !== "1" || $_SESSION['brand'] !== "Y"
&& $_SESSION['type'] === "2") {
include("mod_something.php");
}
条件可能会在代码中的多个位置重复以包含不同的文件。
我想修改其中一些看起来更像:
if($_SESSION['component-red'] === true && $_SESSION['country'] === "Canada") {
include("mod_something.php");
}
并根据品牌和用户选择将组件变量设置在中心位置(站点使用前端加载或 FrontController 设计模式)。
任何有关如何完成此操作的建议或提示将不胜感激,但我不完全确定如何研究非 OOP 代码。
谢谢你。
编辑:我接受过面向对象编程的教育,但这不是我的问题。