Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> oop początki...
Mavestinus
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 6.04.2003
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Witam!
Zaczynam właśnie pisać obiektowo w php (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Na początku napisałem taki kod:[php:1:0382d19591]<?php
class moja{
var $txt;
function dodaj($co){
$this->txt .= $co;
}

function wypisz(){
echo $this->txt;
}

function dlugosc(){
echo('<br>Tekst ma długość: ' . strlen($this->txt) . ' znaków.');
}
}
$obiekt=new moja;
$obiekt->dodaj('tekst');
$obiekt->wypisz();
$obiekt->dlugosc();
?>[/php:1:0382d19591]I teraz mam kilka pytań co do tego kodu:
- czy da się go zapisać 'bardziej' obiektowo?
- czy lepiej jest wszystko przerzucić na funkcje czy lepiej operować na 'zwykłych' funkcjach (np. lepiej użyć funkcji wypisz() czy echo $obiekt->txt;)?
Sorry za lamerskie pytania ale oop to na razie dla mnie czarna magia...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
shima
post
Post #2





Grupa: Zarejestrowani
Postów: 245
Pomógł: 0
Dołączył: 9.09.2002

Ostrzeżenie: (0%)
-----


Cytat
O to właśnie mi chodziło - czy przy większym kodzie nie jest wydajniej (i lepiej tzn. czytelniej) zapisać to samo tylko obiektowo (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ?.


OOP stało się ostatnio niezwykle modne, jest trendy mieć zdanie na temat i robić wrażenie orientujacego się. Zwykle wyraża się to poprzez krytykę (patrz wyżej). OK, koniec komentarza.

Programowanie zorientowane obiektowo to po prostu sposób na bardziej efektywne, czytelne, ekonomiczne wykorzystanie kodu. W przypadku języków czysto obiektowych (JAVA) nie masz wyboru i używasz obiektów, ale w przypadku języków takich jak php czy C++ masz wybór. Tworzenie kodu OOP ma sens szczególnie w przypadkach, gdy mamy do czynienia z bardziej rozbudowanym kodem i gdy przewidujemy, że nasz kod będzie ulegał częstej modyfikacji, rozbudowie etc. Prościej jest opanować części samochodowe, gdy mówimy lewym, tylnym kole samochodu (obiekt - składnik) niż o kole numer 1254, które przypadkiem jest tylnym, lewym kołem mojej syrenki. Tworząc klasę tworzysz niejako jej opis, sposób konstrukcji samochodu, więc kiedy budujesz konkretny egzemplarz, nie musisz po kolei budować poszczególnych części, tylko niejako mówisz: zbuduj mi samochód na podstawie tej instrukcji (definicja klasy). Reszta Cię nie interesuje. Wniosek: jeżeli chcesz zbudować jeden samochód, to możesz zrobić to krok po kroku, strukturalnie lub liniowo. Jeżeli samochodów ma być więcej, lepiej napisać instrukcję.
Kolejny aspekt to rozszerzalność. Jeżeli Twój samochód ma mieć wiele modeli, to możesz stworzyć klasę potomną (klasy potomne) które od klasy macierzystej różnić się będą jedynie wersją wyposażenia czy średnica kół. Nie musisz od początku pisać całej instrukcji, tylko dodajesz: zrób taki sam samochód, tylko daj skórzaną kierownicę. Zysk aż nadto ewidentny.

A Twój przykład, aczkolwiek może nie jest ekonomicznie uzasadniony, jako wprawka jest OK. Rób swoje, trenuj i nie daj się zniechęcić.
Go to the top of the page
+Quote Post

Posty w temacie
- Mavestinus   oop początki...   13.05.2004, 20:12:22
- - Aiker   Ta klasa jest moim zdaniem dobrze napisana pod wzg...   13.05.2004, 20:32:32
- - evo   Na poczatek to sie zastanow dokladnie po co ci te ...   13.05.2004, 20:40:10
- - Mavestinus   Hmmm.... radzisz mi żebym został przy programowani...   13.05.2004, 20:53:19
- - dag   Nikt Ci nie radzi abyś pozostał przy strukturalnym...   13.05.2004, 21:01:18
- - nexis   Re: oop początki...   14.05.2004, 07:59:55
- - Mavestinus   O to właśnie mi chodziło - czy przy większym kodzi...   14.05.2004, 12:44:30
- - shima   CytatO to właśnie mi chodziło - czy przy większym ...   14.05.2004, 13:31:56
- - scanner   Mam dwie uwagi, do powyzszego kodu. 1. Brak konstr...   17.05.2004, 09:01:46
- - Mavestinus   Dzięki scanner i shirma - wy najbardziej mi pomogl...   17.05.2004, 21:29:04
- - tsharek   Cytat<?php function Add( $strStringToAdd ) ...   18.05.2004, 19:50:11
- - dag   Ale tu raczej chodziło o jakieś bardziej zaawansow...   18.05.2004, 21:00:13
- - tsharek   do tego raczej przydał by się inny przykład a nie ...   18.05.2004, 21:29:49
- - scanner   Cytat(...)takie coś co jest niezoptymalizowane (.....   18.05.2004, 22:35:56
- - tsharek   nic na siłę:)   18.05.2004, 22:46:01
- - scanner   Do czego pijesz? Pamietaj, ze przykłady mogą być i...   19.05.2004, 06:14:27
- - dag   Ja wczoraj pisząc swojego posta o bezpieczeństwie ...   19.05.2004, 09:28:18
- - tsharek   CytatInna sprawa, ze czytanie naszych komentarzy o...   19.05.2004, 09:39:41


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 23:39