Implementacja TObject      Strona 2 z 9        Dalej
w oparciu o materiały ze stron BytaminC

       NOOP

      Przepraszam, ale nie mogę nie wspomnieć o historii. Było wiele dyskusji porównujących OOP z NOOP. Obserwowałem, że zwolennicy obu stylów zaciekle bronili swoich racji i to właśnie ich styl był najlepszy. Wybór należy do Ciebie, ale jeżeli chcesz programować w Windows, to witaj w klubie OOP...

      Jeżeli nie wiesz, koncepcja programowania liniowego /NOOP/ jest podobna do przepisu kuchennego. Określasz zdarzenia, które muszą wystąpić, a następnie kolejność tych zdarzeń. W programowaniu liniowym liczył się kod, dane były jedynie balastem. W małych systemach programowanie liniowe sprawdzało się, jednakże wraz ze wzrostem skomplikowania systemów kod stawał się coraz trudniejszy do zrozumienia i rozwijania. Nie miej był szybki.

      Spójrzmy na przykład jak wygląda projekt w stylu NOOP, tak, żebyśmy potem mogli go porównać z OOP. Powiedzmy, że potrzebujemy zbierać i przeglądać informacje o 20 studentach. Zobaczmy jak mógłby wyglądać kod w C:

#include <iostream.h>
struct Student
{
  char name[35];
  char sex;
  int grade;
}; //koniec struktury Student

int main()
{
  Student StudentList[20];

  for (int i=0; i<20; i++)
   {
    cin >> StudentList[i].name;
    cin >> StudentList[i].sex;
    cin >> StudentList[i].grade;
   } //Wpisz studentów


//..zrób coś ze studentami..

 

return 0;
} //koniec funkcji Main
      W powyższym przykładzie widzisz, że dane są zawarte w tabelę struktur i są całkowicie oddzielone od kodu, który ich używa. Cały kod w pliku może przeglądać i modyfikować dane. Ma to swoje zalety, ale staje się trudne do kontrolowania w większych systemach. Wymaga także wiedzy, jakie dane są dostępne, jak ich używać i jaka część kodu jest za to odpowiedzialna. Jeżeli nie pamiętasz pisania wcześniejszego kodu, to rozwój systemu składa się w 90% z poszukiwania, a 10% zajmuje właściwe kodowanie... Jest również ciężko, a wręcz jest niemożliwym ponownie wykorzystać kod.

      OOP

      OOP jest radykalną zmianą w stosunku do programowania liniowego. Fundamentalną zasadą jest to, że dane i kod egzystują w tej samej strukturze. Pogląd, że kod, który manipuluje danymi, powinien być częścią tych danych doprowadził do OOP. Ta nowa struktura została nazwana obiektem. Obiekt zawiera wszystkie potrzebne dane i metody (kod) modyfikujące dane. Każdy obiekt jest deklarowany jako klasa. Zanim zaczniemy omawiać detale, spójrzmy na podstawowe zagadnienia wynikające z nowego stylu.

Autor: Scott Cross
Tłumaczenie:  Maciek Frankiewicz

1  2  3  4  5  6  7  8  9