Php 可以在类上创建静态工厂方法吗?
我有一个类,其实例是以标准格式表示消息的对象。这些实例最终作为JSON对象输出,以便在进程之间传输 该类有一些非常有用的方法,我使用这些方法来验证和控制消息,而无需深入研究对象结构。当我创建消息并将其发送出去时,这是很好的,但是当我接收到JSON对象时,它只包含数据,而没有这些有用的方法 将这些传入的JSON对象映射到类实例的最佳方法是什么 我可以想出四种方法 1向类添加一个静态方法,该方法接受JSON字符串并生成该类的新实例。 2向类添加一个方法,该类接受JSON字符串并将JSON对象映射到该实例。 3在构造函数中有一个可选参数,该参数接受JSON字符串并将其映射到构造时的实例。 4使用工厂方法将类转换为服务 我很想做3,但问题是如果对象的格式不正确,我无法返回反馈,等等 1向类添加一个静态方法,该方法接受JSON字符串并生成该类的新实例 这将使代码更难进行单元测试,并随着特性的变化进行扩展。看 2向类添加一个方法,该类接受JSON字符串并将JSON对象映射到该实例 这是个好主意。这可能与4结合使用很有用。如果您想支持多个objects/JSON格式,单独实现这一点可能会变得单调乏味 3在构造函数中有一个可选参数,该参数接受JSON字符串并将其映射到构造时的实例 我个人认为这是一个笨拙的构造函数使用。JSON验证之类的东西需要抛出异常 4使用工厂方法将类转换为服务 创建工厂是最具扩展性的方法。如果要映射到多个JSON格式和对象,请仔细考虑。这个中心类允许您选择正确的映射并处理随时间的变化。单元测试也很容易Php 可以在类上创建静态工厂方法吗?,php,json,oop,methods,factory,Php,Json,Oop,Methods,Factory,我有一个类,其实例是以标准格式表示消息的对象。这些实例最终作为JSON对象输出,以便在进程之间传输 该类有一些非常有用的方法,我使用这些方法来验证和控制消息,而无需深入研究对象结构。当我创建消息并将其发送出去时,这是很好的,但是当我接收到JSON对象时,它只包含数据,而没有这些有用的方法 将这些传入的JSON对象映射到类实例的最佳方法是什么 我可以想出四种方法 1向类添加一个静态方法,该方法接受JSON字符串并生成该类的新实例。 2向类添加一个方法,该类接受JSON字符串并将JSON对象映射到该