Model obiektowy S3

Jak być może pamiętasz, język R wywodzi się z języka S. Model obiektowy S ewoluował w czasie, a jego trzecia wersja wprowadziła atrybuty klas, co pozwoliło na model obiektowy S3, który znajdujemy dzisiaj w R. Wciąż jest to model obiektowy w R, a większość wbudowanych klas R jest typu S3. To poprawny i bardzo elastyczny model obiektowy, ale bardzo różni się od tego, do czego przyzwyczajeni są ludzie wywodzący się z innych języków obiektowych. S3 jest najmniej formalnym modelem obiektowym, więc brakuje mu kilku kluczowych aspektów. Na przykład S3 nie oferuje formalnych definicji klas, co oznacza, że ​​nie ma formalnej koncepcji dziedziczenia lub hermetyzacji, a polimorfizm jest uzyskiwany za pomocą typów ogólnych. Oczywiste jest, że jego funkcjonalność jest ograniczona pod pewnymi kluczowymi względami, ale programista ma dość dużą elastyczność. Jednak, jak ujął to Hadley Wickham w Advanced R, autorstwa Chapman and Hall, 2014: „S3 ma pewną elegancję w swoim minimalizmie: nie można zabrać jej żadnej części i nadal mieć użyteczny system obiektowy”

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *