Digamos que temos um site com produtos. Temos um método que Product::getProducts
retorna uma série de produtos.
Aí um gerente veio até nós e disse: queremos fazer promoções no site (descontos, promoções). Os produtos serão anexados a cada promoção. Nós escrevemos um métodoAction::getProductsByActionId(actionId)
Então, o gerente veio até nós e disse que precisávamos de mais artigos aos quais as mercadorias estavam anexadas. Vamos adicionar um método Article::getProductsByArticleId(arcticleId)
.
Você diz - vamos fazer 1 método com parâmetros. Ok, vamos chegar a isso.
E então atenção: um gerente veio até nós e disse - queremos ser capazes de desativar produtos no site. Essa. é necessário adicionar um sinalizador ativo para produtos, que possui o valor verdadeiro / falso. Produtos com a bandeira falsa não devem ser exibidos no site.
Resumindo: precisamos encontrar todos os locais no código que obtêm produtos e adicionar lógica em todos os lugares para que apenas produtos com o sinalizador active = true sejam retornados. Essa. 3 métodos precisam ser corrigidos:
Product::getProducts,
Action::getProductsByActionId(actionId),
Article::getProductsByArticleId(arcticleId)
O fato de que precisamos corrigir o código no lugar errado é um erro notável - em algum lugar eles se esqueceram de corrigi-lo.

Bem, vamos fazer com que tenhamos apenas um local de onde obter mercadorias. Então não haverá tal erro.
: , : Product::getProducts(actionId = null, articleId = null)
. , Product::getProducts
, articleId, Action::getProductsByActionId(actionId)
, ..
, , .. .
: . . , , Store::getProducts
— - , . - Product::getProducts
. ( , , - - ), - .
: : , active. . . 1 — Product::getProducts
active=true.
. — . 1 , — . . , Product::getProducts
-, active . 1 .

1 — , — . — -, - . . , — .
UPD:
, 1 : Product::getProducts, Product::getProductsV2, Product::getProducts , , , .
: , 1 private Product::getProducts. public , , .. - Product::getProductsForCatalog, - Product::getProductsForAction, : Product::getProductsForArticles, Product::getProductsForStore .. - 1 , 1 . 1 ( ), .