price
을 포함하는 Product
이라는 레일 모델이 있습니다.레일 : 특정 서비스를 통해 모든 곳의 속성을 읽기 전용으로 만듭니다.
이제는 아무도 (내 팀의 개발자가) 예를 들어 제품 가격을 변경하기로 결정하지 않았습니다. ProductPriceManager
이라는 서비스를 통해 가격을 항상 변경해야하기 때문에 product.update_attributes(price: 2300)
입니다.
그래서 대신 다음과 같이하십시오 : ProductPriceManager.update_price(product, 2300)
. 그 이유는 제품이 바뀌면 다른 많은 일들이 일어나야한다는 것이며, 이것이 바로 ProductPriceManager
이 처리하는 이유입니다.
이것을 구현하는 좋은 방법은 무엇입니까?