Przeprowadzamy wiele testów jednostkowych i refaktoryzacji naszych obiektów biznesowych i wydaje mi się, że mam bardzo odmienne opinie na temat projektowania klas niż inni koledzy. Przykładowa klasa, której nie jestem fanem: public class Foo { private string field1; private string field2; private string field3; private string field4; private string field5; …
Część naszej bazy kodu napisana jest w następującym stylu: // IScheduledTask.cs public interface IScheduledTask { string TaskName { get; set; } int TaskPriority { get; set; } List<IScheduledTask> Subtasks { get; set; } // ... several more properties in this vein } // ScheduledTaskImpl.cs public class ScheduledTaskImpl : IScheduledTask { …
Jedna część mojego programu pobiera dane z wielu tabel i kolumn w mojej bazie danych w celu przetworzenia. Niektóre kolumny mogą być null, ale w bieżącym kontekście przetwarzania jest to błąd. To „teoretycznie” nie powinno się zdarzyć, więc jeśli tak, wskazuje to na złe dane lub błąd w kodzie. Błędy …
Czytałem tę wiki na temat Stable Abstractions Principle (SAP) . SAP stwierdza, że im bardziej stabilny pakiet, tym bardziej powinien on być abstrakcyjny. Oznacza to, że jeśli pakiet jest mniej stabilny (bardziej prawdopodobne, że się zmieni), powinien być bardziej konkretny. Nie do końca rozumiem, dlaczego tak powinno być. Z pewnością …
Gdy Googled, pojawia się wiele odpowiedzi na ten temat. Nie wydaje mi się jednak, aby któryś z nich dobrze ilustrował różnicę między tymi dwiema funkcjami. Chciałbym więc spróbować jeszcze raz, a konkretnie ... Co można zrobić z typami własnymi, a nie z dziedziczeniem i odwrotnie? Dla mnie powinna istnieć jakaś …
Jeśli mam zmienną zawierającą List, może zawierać obiekty wielu różnych typów, np . ArrayListLub LinkedList. Różnica między a LinkedLista ArrayListjest dość duża. Duże zachowanie O metod różni się znacznie. Na przykład sortowanie Listi używanie go do wyszukiwania binarnego jest w porządku, ArrayListale nie ma sensu z LinkedList.
Zastanawiam się tylko, jakie dokładnie funkcje musi zapewnić język lub biblioteka, aby można było ją zdefiniować jako obiektową. Czy orientacja obiektowa jest czymś, co można mniej więcej osiągnąć w dowolnym języku programowania ogólnego przeznaczenia o przyzwoitych funkcjach? A może jest to coś, co można osiągnąć tylko w językach, które reklamują …
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.