Skończyłem więc moją analizę OO i zaprojektowałem aplikację internetową, którą buduję, a teraz jestem w trakcie implementacji. Podjęto decyzje projektowe, aby wdrożyć system za pomocą Pythona i platformy Django do tworzenia stron internetowych.Decoupling Domain classes from Django Model Classes
Chcę rozpocząć wdrażanie niektórych z moich klas jednostek domeny, które wymagają trwałości. Wygląda na to, że Django miałoby mnie zaimplementować jako klasy dziedziczone z klasy modeli Django, aby użyć ORM Django do utrwalania. Wydaje się to jednak zbyt silne powiązanie między moimi jednostkami klasy a mechanizmem trwałości. Co się stanie, jeśli na pewnym etapie chcę zrezygnować z Django i użyć innej struktury programistycznej lub po prostu pozbyć się ORM Django? Teraz muszę ponownie napisać moje klasy encji domeny od zera.
Więc lepiej byłoby zaimplementować moje klasy domen jako samodzielne klasy Pythona, obejmując w nich całą logikę biznesową, a następnie użyć jakiegoś mechanizmu (wzorca projektowego, takiego jak most lub adapter lub ???), aby delegować pamięć trwałości te klasy domen do ORM Django, na przykład poprzez klasę modelu Django, która została odpowiednio skonfigurowana.
Czy ktoś ma sugestie, jak to zrobić? Z tego, co przeczytałem, wynika, że ludzie po prostu implementują swoje klasy domenowe jako klasy odziedziczone z klasy modelu Django i mają logikę biznesową wymieszaną w tej klasie. Nie wydaje się to dobrym pomysłem na zmiany w dół, konserwację, ponowne wykorzystanie itp.
Byłoby lepszą odpowiedzią, gdybyś wyjaśnił, dlaczego to będzie funkcja, a nie błąd. Uwielbiam Pythona, ale połączenie różnych koncepcji Django nie zawsze jest wygraną. – AdamC