如果只使用一个函数codeigniter/php,则加载模型的开销

如果只使用一个函数codeigniter/php,则加载模型的开销,php,model-view-controller,codeigniter,model,load,micro-optimization,Php,Model View Controller,Codeigniter,Model,Load,Micro Optimization,假设a有一个控制器(我们称之为“main”)和一个执行一系列(10)功能的关联模型 我想知道加载第二个模型来执行主模型中不存在的函数与在主模型中添加该函数(复制代码)相关的开销 加载第二个模型的优点是代码更少/更易于维护 缺点是加载第二个模型的开销 我对管理费用的担心是正确的吗?我不是CS人,只是想知道这里的最佳实践是什么 谢谢, tim这取决于实例化对象的方式。 对于PHP类,您可以定义在创建对象时要加载的内容(请参见构造函数)。 大多数时候,是的,最好有一个干净清晰的代码进行维护,但有时,出

假设a有一个控制器(我们称之为“main”)和一个执行一系列(10)功能的关联模型

我想知道加载第二个模型来执行主模型中不存在的函数与在主模型中添加该函数(复制代码)相关的开销

加载第二个模型的优点是代码更少/更易于维护

缺点是加载第二个模型的开销

我对管理费用的担心是正确的吗?我不是CS人,只是想知道这里的最佳实践是什么

谢谢,
tim

这取决于实例化对象的方式。 对于PHP类,您可以定义在创建对象时要加载的内容(请参见构造函数)。
大多数时候,是的,最好有一个干净清晰的代码进行维护,但有时,出于业务原因,最好复制一些代码,即使很难维护。我在这里读到的只是开发人员的观点(我是其中之一…),但根据我的观点,一个好的开发人员应该始终首先考虑功能/业务,即使这意味着他需要生成更多代码以获得更好的用户体验,或者有时他需要编写一些肮脏/快速/难以维护的代码,但它对用户有效

这取决于实例化对象的方式。 对于PHP类,您可以定义在创建对象时要加载的内容(请参见构造函数)。 大多数时候,是的,最好有一个干净清晰的代码进行维护,但有时,出于业务原因,最好复制一些代码,即使很难维护。我在这里读到的只是开发人员的观点(我是其中之一…),但根据我的观点,一个好的开发人员应该始终首先考虑功能/业务,即使这意味着他需要生成更多代码以获得更好的用户体验,或者有时他需要编写一些肮脏/快速/难以维护的代码,但它对用户有效

。如果你这样做了,那么你的生活将比维护代码时更加艰难。良好OOP的原则鼓励您创建具有特定职责范围的类,并使用该类处理为其构建的情况。将类X中的功能复制到类Y中违反了这一原则。如果类Y需要做类X所做的事情,那么这意味着要么类Y需要与类X的实例对话,要么类Y应该从类X继承

这充其量也将是一场灾难。加载另一个类对性能的影响应该可以忽略不计,当然没有什么值得担心的

。如果你这样做了,那么你的生活将比维护代码时更加艰难。良好OOP的原则鼓励您创建具有特定职责范围的类,并使用该类处理为其构建的情况。将类X中的功能复制到类Y中违反了这一原则。如果类Y需要做类X所做的事情,那么这意味着要么类Y需要与类X的实例对话,要么类Y应该从类X继承


这充其量也将是一场灾难。加载另一个类对性能的影响应该可以忽略不计,当然没有什么值得担心的

hi Yoong,我不必将其加载到构造函数中,尽管这是最懒/最简单的方法。所以你一般都主张复制代码?不,我只是写了它取决于你的需要…当你包含另一个模型并调用该方法时,这有利于维护和重用。但是,如果您因为需求的发展而多次修改您的方法,那么您应该重新考虑一下……您的问题很难回答,因为我们不知道所有细节……好的,谢谢,我想我采用最简单的方法,即重用代码。如果我的需求发生变化,我总是可以在以后重构。谢谢hi Yoong,我不必将其加载到构造函数中,尽管这是最懒/最简单的方法。所以你一般都主张复制代码?不,我只是写了它取决于你的需要…当你包含另一个模型并调用该方法时,这有利于维护和重用。但是,如果您因为需求的发展而多次修改您的方法,那么您应该重新考虑一下……您的问题很难回答,因为我们不知道所有细节……好的,谢谢,我想我采用最简单的方法,即重用代码。如果我的需求发生变化,我总是可以在以后重构。谢谢嗨,戈登,谢谢你的建议。我没有感觉到性能受到影响,但这正是我想知道的。如果你说这是微不足道的,那对我来说就足够了。嗨,戈登,谢谢你的建议。我没有感觉到性能受到影响,但这正是我想知道的。如果你说这是微不足道的,那对我来说就足够了。