Oracle'ın OOP kavramlarına girişini okuyordum ve şu açıklamaya rastladım:
Gerçek dünyadaki nesneler iki özelliği paylaşır: Hepsinin durumu ve davranışı vardır. Köpeklerin durumu (adı, rengi, cinsi, aç) ve davranışı (havlama, getirme, kuyruk sallama) vardır. Yazılım nesneleri kavramsal olarak gerçek dünyadaki nesnelere benzer: onlar da devlet ve ilgili davranışlardan oluşur.
Bu pasajla ilgili benim sorunum, durumu açıklarken karışımların özniteliklerini de orada oluşturmasıdır. Örneğin, bir köpeğin adı ve rengi onun nitelikleridir, ancak aç veya susuz olması durumlarıdır.
Bence nesnelerin özelliklerini üç parçaya ayırmak daha doğru: nitelikler, durumlar ve davranışlar .
Elbette, bunu bir programlama diline çevirirken, üç katlı bölümün iki katlı hale geldiğini görebiliyorum, çünkü hem öznitelikler hem de durumlar alanlara / değişkenlere depolanırken, davranışlar yöntemlere / fonksiyonlara depolanacak.
Ancak kavramsal olarak konuşursak, 3 şeyin ayrı olması daha mantıklı.
İşte başka bir örnek: bir lambayı düşünün. Hem lamba boyutunun hem de açık olup olmadığını durum olarak söylemek, bence bir gerginlik. Lamba boyutu bir durum değil, bir özelliktir, açık veya kapalı durum ise bir durumdur.
Yoksa bir şey mi kaçırdım?