Czytałem wprowadzenie Oracle do koncepcji OOP i natrafiłem na ten opis:
Rzeczywiste obiekty mają dwie cechy: wszystkie mają stan i zachowanie. Psy mają stan (imię, kolor, rasę, głodny) i zachowanie (szczekanie, ściąganie, machanie ogonem). Obiekty oprogramowania są koncepcyjnie podobne do obiektów w świecie rzeczywistym: one również składają się ze stanu i powiązanych zachowań.
Mój problem z tym fragmentem polega na tym, że opisując stan, również tam miesza atrybuty . Na przykład, nazwa i kolor psa to jego atrybuty, a jego głód lub zgorzknienie to jego stany.
Moim zdaniem dokładniejsze jest rozbicie cech obiektów na trzy części: atrybuty, stany i zachowania .
Jasne, tłumacząc to na język programowania, widzę, że trzykrotna partycja staje się dwukrotna, ponieważ zarówno atrybuty, jak i stany zostaną zapisane w polach / zmiennych, a zachowania w metodach / funkcjach.
Ale pod względem koncepcyjnym sensowniejsze jest oddzielenie 3 rzeczy.
Oto inny przykład: rozważ lampę. Stwierdzenie, że zarówno rozmiar lampy, jak i to, czy jest włączona, są stanami. Rozmiar lampy jest atrybutem, a nie stanem, natomiast włączenie lub wyłączenie jest stanem.
A może coś przeoczyłem?