Mam dwie klasy, A i B. B wie o A, a A nie wie o B. Właściwości B mogą być ładnie ustawione z A, chociaż nie ma dziedziczenia dzielonego między A i B. Nie będzie wiele razy, kiedy muszę przypisać właściwości B z A, ale szukam wskazówek, gdzie powinienem umieścić ten kod.Konwencje w kodzie przypisania?
public class A
{
}
public class B
{
//constructor?
public B(A a)
{
//set b's properties from a
}
//factory method?
public static B FromA(A a)
{
B b = new B();
//set b's properties from a
return b;
}
//setter method?
public static void SetBFromA(B b, A a)
{
//set b's properties from a
}
//assignment method?
public void AssignFrom(A a)
{
//set b's properties from a
}
}
//static helper class?
public static class BHelper
{
public static B GetBFromA(A a)
{
B b = new B();
//set b's properties from a
return b;
}
public static void SetBFromA(B b, A a)
{
//set b's properties from a
}
}
Które z nich, jeśli takie są, są powszechną praktyką? Czy któryś z nich ma konsekwencje wynikające z podpisu? Na przykład, czy użycie konstruktora zazwyczaj oznacza, że B zawiera odniesienie do A? Są to rozważania, o których myślę.
Dzięki!
Doskonała odpowiedź. Podoba mi się komentarz do każdej z sugestii, które wymyśliłem, a także świetne zasady dotyczące każdego z nich. Dokładnie to miałem nadzieję osiągnąć. Dzięki! – bwerks
* rumieniec * - dziękuję. –