带Facade模式的PHP OOP谁应该打印html?

带Facade模式的PHP OOP谁应该打印html?,php,html,oop,facade,Php,Html,Oop,Facade,在开发类并理解Facade如何管理复杂性后,我遇到了一个疑问,我正在用PHP开发一个Facade模式的应用程序(我被要求使用这个特定的模式): 谁应该打印我的HTML代码? 我的意思是门面应该使用我所理解的不应该直接从页面访问的对象(这里我可能错了…),所以如果门面是唯一可以访问我的对象的对象,那么应该是门面来打印HTML代码吗? 例如,如果我有一个订单列表(订单是我的一个类,它包含其他对象),并且我需要打印一个表来显示所有订单,那么我是否应该为facade创建一个方法,以便执行以下操作 类外

在开发类并理解Facade如何管理复杂性后,我遇到了一个疑问,我正在用PHP开发一个Facade模式的应用程序(我被要求使用这个特定的模式): 谁应该打印我的HTML代码? 我的意思是门面应该使用我所理解的不应该直接从页面访问的对象(这里我可能错了…),所以如果门面是唯一可以访问我的对象的对象,那么应该是门面来打印HTML代码吗? 例如,如果我有一个订单列表(订单是我的一个类,它包含其他对象),并且我需要打印一个表来显示所有订单,那么我是否应该为facade创建一个方法,以便执行以下操作

类外观{
//……其他东西。。。。
函数printOrders(){
foreach($orders作为$oneorder){
echo“$oneorder->getPrice()$oneorder->getDescription()
}
}
//……其他东西。。。。

}
facade除非包装某种视图模型,否则不应输出HTML。这应由视图及其助手/模型负责,这些助手/模型应与您的业务/数据模型分离,尽管它可能会消耗这些(或其facade).至少我从你在这里提到的内容中了解到了这一点。我对使用它还不熟悉,所以请原谅,如果我没有正确理解你所说的,你的意思是,正确的方法是实现一个视图类,该类将与对象交互并打印它们,对吗?你不使用设计模式,因为你被要求使用,你使用解决一个特定问题的方法。这是一个学校项目吗?你试图隐藏在门面后面的是什么复杂的子系统?如果你正在进行适当的OOP,你几乎肯定应该将你的视图从门面包装的数据和/或域模型中分离出来。因此,这意味着你会有某种视图引擎。但是要继续d plalx说你应该使用门面,因为有需要。该模式旨在为一组互连系统提供一个简化的接口。如果这不是你的用例,那么你是否应该使用它是有争议的。谢谢大家的帮助,首先,这个项目是我的大学老师who向我请求了一个facade模式应用程序,在你的建议之后,它现在看起来更有意义了!我现在有了一个视图层,它与我的facade通信,以检索和打印我需要回显的对象。大多数情况下,该应用程序现在看起来更加模块化,所以我非常感谢你们!