Pergunta

Apenas uma pergunta rápida sobre as melhores práticas no desenvolvimento do MVC.

Digamos que eu tenho dois controladores (cont1, cont2), cada um dos quais usa um modelo separado, Model1 e Model2.

Todos os arquivos são complexos, os modelos contêm dezenas de métodos.

Digamos, terminei de desenvolver o primeiro controlador e estou no meio do trabalho no segundo. Preciso criar um método no Model2, que será exatamente o mesmo que um dos métodos no Model1. É apenas um método minúsculo, obtendo, por exemplo, uma lista de categorias de algum tipo.

Qual é a melhor abordagem do trabalho - devo duplicar o método e incluí -lo no meu Model2, ou devo recuperá -lo do Model1?

A coisa razoável a fazer seria obtê -lo do Model1, mas não sei se isso afetaria o tempo de execução, pois teria que carregar os dois modelos.

Eu ficaria grato por algum feedback

Obrigado k

Foi útil?

Solução

Carregar um segundo modelo não terá um impacto perceptível no tempo de execução. Este é provavelmente o caminho a percorrer.

Além disso, cada modelo deve encapsular a lógica de dados para um 'objeto' específico. Você pode pensar em cada modelo quase como uma tabela de banco de dados. Portanto, você provavelmente não deseja ter o mesmo método em dois lugares diferentes - e, se o fizer, considere criar um plug -in.

Outras dicas

Talvez o que você realmente precisa seja um terceiro modelo. Se você tem um método que está sendo usado em muitos/todos os seus modelos, pode realmente ser um conjunto de dados exclusivo que justificaria sua própria atenção. Além disso, você evitará carregar vários modelos "grandes" e, em vez disso, terá 1 modelo grande e 1 minúsculo.

Eu encontrei a mesma situação. O que eu faço é carregar o objeto Codeigniter por referência em todo modelo. Depois, posso carregar outros modelos, bibliotecas, ajudantes e até configurar itens nos meus modelos. Ajuda a manter o código do modelo fora do controlador e eu consideraria uma prática recomendada. Sempre mantenha -o seco (não se repita).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top