1
When I need to use a database information for more than one task, what is the best solution for object orientation( ex:list the products of a cart and perform calculations ):
1 - Create a single method that already does everything( 1 access to the bank and 1 while )
// recupera a lista de produtos do banco
$lista_produtos = $carrinho->listar_produtos();
// percorre os produtos e realiza as tarefas necessarias
while($carrinho_produto = $lista_produtos)
{
$valor_produto = $carrinho_produto ->valor * $carrinho_produto ->quantidade;
$valor_frete += $valor_produto * $fator_frete;`insira o código aqui`
$valor_total += $valor_produto;
}
2 - Create 3 methods and list the products in each of them, consequently performing more access to the bank( 1 access to the bank by method and multiple while ).
$carrinho->calcular_preco();
$carrinho->calcular_frete();
$carrinho->calcular_valor_total();
3 - Retrieve the list of bank products, store in a vector, pass the vector in all methods( 1 access to the database and while multiples )
$vetor_produtos = $carrinho->listar_produtos();
$carrinho->calcular_preco( $vetor_produtos );
$carrinho->calcular_frete( $vetor_produtos );
$carrinho->calcular_valor_total( $vetor_produtos );