Główny problem Widząc dobre wsparcie większość nowoczesnych platform programowania ma do zarządzania pakietami (myślę gem, npm, pipitp), to ma sens, aby zaprojektować aplikację lub system składający się z wewnętrznie opracowanych pakietów, tak aby promować i tworzyć luźno architekturę? Przykład Przykładem może być tworzenie pakietów dostępu do bazy danych, a także …
Obecnie uczę się o wzorach projektowych. Myślę, że większość ludzi zgodzi się, że te wzorce są świetnymi narzędziami, ale powinny być stosowane z umiarem, a nie jako odpowiedź na wszystko. Nadmierne ich użycie nadmiernie skomplikowałoby aplikację, przynosząc niewielkie korzyści. Wzory powinny być stosowane tylko tam, gdzie mogą być najlepszym rozwiązaniem …
Powinienem rejestrować niektóre zdarzenia w programie, ale o ile wiem, lepiej byłoby przechowywać kod logowania poza programem, ponieważ nie chodzi o prawdziwą funkcjonalność programu. Czy możesz mi powiedzieć, czy powinienem całkowicie trzymać się z dala od kodu i używać tylko obserwatorów i słuchaczy do rejestrowania zdarzeń? Lub mogę dodać wiersz …
Pracuję nad systemem, który pozwala administratorom definiować formularze zawierające pola. Zdefiniowane formularze są następnie wykorzystywane do wprowadzania danych do systemu. Czasami Formularze są wypełniane przez człowieka za pomocą GUI, czasami Formularz jest wypełniany na podstawie wartości zgłoszonych przez inny system. Dla każdego pola administrator może zdefiniować regułę walidacji, która ogranicza …
Próbuję zrozumieć wzorzec strategii i zadaję sobie pytanie: czy klasa kontekstowa jest niezbędna, czy mogę ją pominąć bez uszczerbku dla celu wzorca? Miałem wrażenie, że potrzebowałem jakiegoś rodzaju przełącznika do odczytu różnych typów plików, ale nie chciałem po prostu hakować czegoś, a później zajmować się refaktoryzacją (chociaż oczywiście zawsze zdarza …
Biorąc pod uwagę koncepcję „chudych kontrolerów, grubych modeli” i ogólną akceptację, że widoki mogą bezpośrednio wywoływać modele, gdy wymagają danych do danych wyjściowych, czy należy rozważyć obsługę części „pobierania i wyświetlania” żądań w widokach, a nie kontrolera? Na przykład (próbował zachować kod dość ogólny): Kontroler <?php class Invoice extends Base_Controller …
Często to, co wyświetla się użytkownikowi (np. Na stronie internetowej), będzie częściowo oparte na kontroli bezpieczeństwa. Zazwyczaj uważam bezpieczeństwo na poziomie użytkownika / ACL za część logiki biznesowej systemu. Jeśli widok wyraźnie sprawdza zabezpieczenia w celu warunkowego wyświetlania elementów interfejsu użytkownika, czy narusza MVC poprzez zawieranie logiki biznesowej?
Podczas pracy z fragmentami korzystałem z klasy złożonej ze statycznych metod, które definiują działania na fragmentach. Dla każdego projektu mogę mieć klasę o nazwie FragmentActions, która zawiera metody podobne do następujących: public static void showDeviceFragment(FragmentManager man){ String tag = AllDevicesFragment.getFragmentTag(); AllDevicesFragment fragment = (AllDevicesFragment)man.findFragmentByTag(tag); if(fragment == null){ fragment = new …
Jeśli mam w kodzie funkcję, która wygląda następująco: class Employee{ public string calculateTax(string name, int salary) { switch (name) { case "Chris": doSomething($salary); case "David": doSomethingDifferent($salary); case "Scott": doOtherThing($salary); } } Normalnie przefakturowałbym to, aby użyć Ploymorfizmu przy użyciu fabrycznego wzorca klasy i strategii: public string calculateTax(string name) { InameHandler …
Przez większość czasu, gdy piszę kod, który obsługuje odpowiedź na określone wywołanie funkcji, otrzymuję następującą strukturę kodu: przykład: jest to funkcja, która będzie obsługiwać uwierzytelnianie w systemie logowania class Authentication{ function login(){ //This function is called from my Controller $result=$this->authenticate($username,$password); if($result=='wrong password'){ //increase the login trials counter //send mail to …
Czytałem o wzorach projektowych i czytałem, że prototypowy wzór projektowy eliminuje nadmierną podklasę. Dlaczego podklasowanie jest złe? Jaką przewagę przyniosłoby zastosowanie prototypu nad podklasą?
Niedawno znalazłem pojęcie programowania literackiego . Uznałem to za dość intrygujące. Jednak nie spotkałem się z twierdzeniami, że jest to zły sposób na strukturę programu. Wydaje się, że nie obejmuje wielu miejsc. Nawet tutaj nie mogłem znaleźć żadnych pytań na ten temat. Moje pytanie nie dotyczy wad i sposobów zarządzania …
Stworzyłem dwie abstrakcyjne klasy Subject i Observer, które definiują klasyczny interfejs wzorców Observer. Czerpię z nich implementację wzorca Observer. Obserwator może wyglądać następująco: void MyClass::Update(Subject *subject) { if(subject == myService_) { DoSomething(); } else if(subject == myOtherService_) { DoSomethingElse(); } } To dobrze i mówi mi, kto coś zmienił. Jednak …
Jakie objawy w bazie kodu wskazują, że wymagane jest podejście do detektora zdarzeń? Wydaje mi się, że gdy istnieją klasy, które muszą być wywoływane przez wiele, nieokreślone w zestawie innych klas w czasie projektowania, potrzebujesz jakiegoś szkieletu sygnalizacyjnego, ale chciałbym usłyszeć, jakie inne sytuacje mogłyby tam być ulepszone przez przejście …
(To pytanie zostało zamknięte w przypadku przepełnienia stosu, ponieważ jest „zbyt szerokie” i „nie jest prawdziwym pytaniem”, więc może jest bardziej odpowiednie tutaj?) Zainspirowany tym pytaniem . Wiemy, że wydarzenia są implementacją wzorca Observer na poziomie językowym. Czy istnieją inne wzorce projektowe zaimplementowane jako funkcje językowe w języku C #? …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.