假设a有一个控制器(让我们称之为“main”)和一个执行一堆函数的相关模型。
我想知道加载第二个模型以执行主模型中不存在的一个函数而不是仅在主模型中添加该函数(复制代码)时的相关开销。
加载第二个模型的优点是代码更少/更容易维护。
缺点是加载第二个模型的开销。
我对开销的担心是否有效?我是非CS人,只是想知道这里的最佳做法是什么。
感谢, 添
答案 0 :(得分:5)
Don't Repeat Yourself。如果你这样做,那么只会让你的生活比维持你的代码更加困难。良好的OOP原则鼓励您创建具有特定责任区域的类,并使用该类来处理它所构建的情况。将类X中的功能复制到Y类违反了这一原则。如果类Y需要执行类X所做的事情,那么这意味着类Y需要与类X的实例通信,或者类Y应该从类X继承。
最多也是micro-optimization。加载其他类的性能损失应该可以忽略不计,当然没什么值得担心的。
答案 1 :(得分:1)
这取决于您如何实现对象。 对于PHP类,您可以定义在创建对象时要加载的内容(请参阅构造函数)。 大多数情况下,是的,最好有一个干净清晰的维护代码,但有时候,出于商业原因,最好复制一些代码,即使它很难维护。我在这里只看到开发人员的观点(我是一个...)但是根据我的观点,一个优秀的开发人员应该首先考虑功能/业务,即使这意味着他需要生成更多代码以获得更好的用户体验或有时他需要编写一些脏/快/难以维护的东西,但它适用于用户!