Jak wymusić podpisy konstruktora i metody statyczne?
Czy istnieje sposób wymuszenia klasy (podrzędnej) na konstruktory z konkretnymi sygnaturami lub konkretnymi metodami statycznymi w języku C # lub Java?
Nie możesz oczywiście używać do tego interfejsów i wiem, że będzie to miało ograniczone zastosowanie. Jednym z przykładów, w których uważam to za przydatne, jest wymuszanie pewnych wytycznych projektowych, na przykład:
Wyjątki
Wszyscy powinni mieć czterech kanonicznych konstruktorów, ale nie ma sposobu na ich egzekwowanie. Aby je złapać, musisz polegać na narzędziu takim jak FxCop (przypadek C #).
Operatorzy
Nie ma kontraktu określającego, że można zsumować dwie klasy (z operatorem + w C #)
Czy istnieje jakiś wzór do obejścia tego ograniczenia? Jaką konstrukcję można dodać dojęzyk pokonać to ograniczenie w przyszłych wersjach C # lub Java?