우선, 제목이 내가 언급 한 내용을 정확하게 설명하는지 잘 모르겠다. 그래서 이것을 무엇이라고 부르는지에 대한 의견을 남기거나, 담당자가 있다면 스스로 이름을 변경하십시오.이중 연결된 다 대다 관계를 정리하는 방법은 무엇입니까?
것은의 내가 2 개 클래스, 도서 및 라이브러리를 가지고 예를 들어 가정 해 봅시다. 라이브러리에는 소유하고있는 모든 책의 목록 인 속성이 있습니다. 책은 그것이 속한 모든 도서관의 목록이라는 속성을 가지고 있습니다. 책에
가 나는 도서관의 목록입니다에서 라이브러리를 제거하는 RemoveFromLibrary 방법이있다. 나는 또한 같은 방법으로 상대방, 즉 자신이 소유 한 도서 목록의 도서관을 정리하기를 원한다. 라이브러리의 RemoveBook 메소드도 포함되어있는 북의 라이브러리 목록을 정리합니다. 모든첫째, 메이크업의 의미는 무엇입니까? 필자는 코드를 호출하여 정리 작업을 걱정할 필요가 없으며 하나의 논리적 작업을 수행하는 두 가지 메서드를 호출 할 필요가 없다고 생각합니다. 나는 그것이 하나의 목록에서 제거하는 것이 타당하지 않다는 것을 의미합니다. 동시에, 이것이 너무 강하게 결합되어 있다고 말할 수 있지만, 문제가된다면 나는 그것을 리팩토링하여 디커플링 할 것입니다.
구현하는 방법에 관해서는 잘 모르겠지만 정상적인 public 메서드를 호출하면 각 메서드가 무한 루프로 반복되어 호출됩니다. 클린업을하지 않는 별도의 내부 속성 (C#으로 작업)을 만들 수도 있지만 API를 다른 메서드에서 호출하기위한 메서드로 처리하고있는 것처럼 느껴집니다. 또는 기본 컬렉션을 내부로 노출 할 수 있지만 좀 더 좋지만 이상적으로 보이지는 않습니다. 더 나은 해결책이 있습니까? 아니면 그 둘 중 하나만 가지고 가야합니까?
이 그냥 보인다
은 BTW이
편집이 (컴파일하지 않을 수 있습니다)에만 의사입니다 나에게 비린내 같은 디자인, 솔직히 말해서, 특정 성능 최적화가 중요하지 않은 경우. 나는 왜 당신이 한 책 또는 다른 책 (아마 책에서 도서관까지)에 백 링크가 필요한지 생각해보고, 당신이 그들을 없앨 수 있는지 평가할 것이다. – mquander
나는 두 객체 중 주어진 관계를 제거 할 수있는 코드를 호출하는 것이 더 편리하고 자연스러운 것 같다. 나는 이것이 세계에서 가장 좋은 이유는 아니라고 생각하지만, 그것에 대해 어떤 단점도 보지 못한다. 그래서 그것은 작은 프로 대 노협처럼 보인다. 내가 틀릴 수도 있고, 내가 모르는 죄수가있을 수도있다. – Davy8