我阅读工厂的方法模式,因为我有一些相关的问题,但我无法从核心理解它。如定义所述,这里
创建对象通常需要复杂的进程,而不适合包含在组合对象中。对象的创建可能导致代码的重大重复,可能需要组合对象无法访问的信息,可能无法提供足够的抽象级别,或者可能不是组合对象的关注点的一部分。
我可以理解重要代码重复的概念,但我无法理解其他概念,如它所述。
它可能需要合成对象无法访问的信息。
类如何包含不能通过组合对象访问的信息。据我所知,它可能是类的任何private数据成员。但是,如果有任何东西是private,那么对象创建过程是如何需要这些信息的?同样地,其他两点
它可能没有提供足够的抽象级别,或者可能不是组合对象的关注点的一部分。
有谁能不能在这里精确地描述这些,并展示我的一些代码内容,以便我能够理解这个概念。
发布于 2012-02-17 09:23:43
工厂模式的思想是动态创建加载类和创建新对象。它通常是作为静态类完成的(如这里,在正式的PHP文档中),但是一些框架使用工厂模式作为在MVC对象中加载对象的一种方式,例如,当您希望通过模型加载视图中的一些数据时。
工厂模式的理念是效率和资源管理。它只在尚未加载的情况下加载文件,并返回新创建的对象。
(请注意,PHP文档中的示例并不理想,最好检查类是否已定义,如果没有,则尝试包含文件,而不是使用include_once())。
发布于 2012-02-17 09:34:31
当在我们的对象中使用外部资源时,会想到创建它的其他方法:
发布于 2012-02-21 21:29:37
假设您正在编写一个API,用户可以通过该API创建和使用某个对象。在内部,在API框架中,您希望在某些服务、侦听器、数据库中注册对象.
在这里,您有两种不同的处理情况的方法:
或
第二个场景是在您的系统中隐藏创建此类对象的所有复杂性的最佳方法。这还具有隐藏注册创建对象所需的服务、侦听器和数据库的巨大好处。
https://stackoverflow.com/questions/9325617
复制相似问题