|
|
|
| Такой вопрос появился.
У меня два класса Class1 и Class2.
В Class2 существует метод, в котором создается объект типа Class1 и вызываются его методы.
Как лучше сделать, функциональность методов Class1 которые вызываю в методе Class2 переписать
в сам класс Class2 или же вызывать их. Это связано с быстродействием?
Суть:
Class Class1
{
method1() {}
method2() {}
}
Class Class2
{
method1()
{
$obj_1 = new Class1;
$obj_1 -> method1();
$obj_1 -> method2();
}
} | |
|
|
|
|
|
|
|
для: levsha
(30.09.2007 в 13:56)
| | Лучше наследовать классы:
<?php
Class Class1 {
function method1() {echo "вызван method1 класса Class1<br/>";}
function method2() {echo "вызван method2 класса Class1<br/>";}
}
class Class2 extends Class1 {
}
$test = new Class2;
$test->method1();
|
| |
|
|
|
|
|
|
|
для: levsha
(30.09.2007 в 13:56)
| | >Как лучше сделать, функциональность методов Class1 которые вызываю в методе Class2
>переписать в сам класс Class2 или же вызывать их.
Не следует дублировать методы одного класса в другом - это нарушение принципов объектно-ориентированного программирования - если их нарушать - рано или поздно получится каша, которую проще выкинуть, чем сопровождать и поддерживать. Следует поступить именно так, как вы написали.
PS Если хотите, чтобы два класса обладали одинаковыми методами - создайте базовый класс с этими методами и унаследуйте от него оба класса.
>Это связано с быстродействием?
PPS С быстродействием это никак не связано, ООП не предназначен для увеличения скорости приложения - объектно-ориентированная методология предназначена для организации кода: человек не может держать в голове миллионы деталей сложного приложения (обязательно, что-нибудь забудет, ошибётся...) - ООП позволяет разрабатывать огромные приложения эволюционным путём - развивая иерархию классов и построенных на их основе блоков. Разработчики классов не думают об конечных приложениях, разработчики приложений не задумываются как работают классы - каждый сосредотачивается на своей задаче. Простые и мелкие задачи решаются быстрее, чем сложные и объёмные. | |
|
|
|