왜 Product 객체에는 Save라는 메서드가 있습니까?액티브 레코드 : "저장"과 같은 것을 추가하는 이유는 무엇입니까?
데이터베이스에 자신을 저장하는 제품이 잘못되었다고 생각됩니다. 제품은 자신의 책임에 대해서만 알고 있어야하지 않습니까? AR의 목적을 이해하지 못했거나 문제점이 제 해석에 있지 않습니다.
$product = new Product();
$product->name = 'sample post';
$product->price = 10;
$product->save();
"활성 레코드"라고합니다. 'save()'는 레코드의 합리적인 메소드/동작이 아닙니까? 액티브 레코드는 오직 수동적 인 데이터를위한 것이며, 유일한 행동은로드 & 세이브입니다. 어쨌든, 당신의 어리석은 생각은 MS 도서관의 디자인을 바꾸지 않을 것입니다. 그것을 사용하거나 대안을 선택하십시오. –
제품은 레코드입니까? 도메인에서 엔티티입니다. 데이터베이스에는 레코드 만 있습니다. 활성 레코드를 변경하려고하지 않습니다. 나는 그가 응용 분야 (도메인)에 들어가서는 안된다는 것을 이해하고있다. 그것은 나에게 다른 상황에서 사용해야한다고 생각한다 ... 나는 가지고있는 느낌이다. – Maykonn
귀하의 우려 사항이 적절합니다. 우려를 분리하기 위해 데이터 매퍼 패턴을 사용할 수 있습니다 (http://www.martinfowler.com/eaaCatalog/dataMapper.html). –