All streams
Search
Write a publication
Pull to refresh
0
0
Joshua5 @Joshua5

Программист

Send message
Это исторический момент, господа: мы наблюдаем рождение искуственного разума. Пишите реальные имена в QIPе, скоро наши руководители смогут наблюдать за нашей работой онлайн, в то время как мы будем отдыхать на пляжах.
Мне вообще не нравится, когда функция может возвращать либо результат, либо ошибку. Ошибка должна обрабатываться общим механизмом исключений, а не отдельно после каждого вызова функции.
Это оправданные затраты. Нормальная IDE, типа Eclipse, при наведении на метод будет показывать его описание из PHPDoc, например. И вообще, это полезно: сначала написать комментарий, а потом написать код, т.к. сначала думаешь, а потом делаешь.
Кстати, нет. Если я не объявлю этот метод, то не смогу получить доступ к private x напрямую. Если же я объявлю его как protected — смогу изменить из потомка.
Тогда читайте ещё раз и внимательнее, попробуйте найти отличия от примера по Вашей ссылке в моих комментариях. Больше я Вам, увы, ничем помочь не могу.
Разница, вобщем-то, не сильно велика.
Читайте пример выше.
А он и не должен просто возвращать данные. Возможно, я хочу как-то фильтровать их для клиента. Возможно, по какому-то параметру. Так что я ограничиваю доступ к исходнику и выдаю только то, что считаю нужным.
Так вопрос не в том, можно ли принципиально их использовать или нет, а в том, чтобы создать правильную структуру модулей. Классы для этого и нужны.
Упс, простите за форматирование. Здесь как-то можно красиво вставлять код?
Это, вообще говоря, сильно упрощенный пример, чтобы не растекаться мыслью по древу, так сказать.

Но, допустим, есть базовый класс — сборщик неких данных. Нужно дать интерфейс для получения этих данных без возможности их изменения.

<?php
interface AB
{
public function getX();
}
class A
{
private $x = 1;
protected function getX()
{
return( $this->x );
}
}
class B extends A implements AB
{
public function getX()
{
return( parent::getX() );
}
}
$b = new B();
echo( $b->getX() );
?>
Читайте про инкапсуляцию и доступ к данным.
А разве это не решается классами и пространствами имён? Я уже давно не силён в C++, если что.
Пункт 3, кстати, очевидно не относится к объектно-ориентированным языкам.
Насчёт пункта 6. В PHP, например, при использовании циклов нужно хранить размер массива в переменной, а не использовать count() в условии, т.к. он вычисляется на каждой итерации.

Насчёт пункта 7. Опять на PHP. В классе A объявляется protected свойство x. Класс B наследуется от класса A. Задача получить значение свойства x решается через объявление в классе B public метода getX(). Думаю не нужно объяснять, для чего это применяется.
«Report Spam» в GMail, «Пожаловаться на спам» в Mail.ru (Яндексом не пользуюсь). Интересно только, как они работают.
It's time to kick ass or chew bubblegum… and I'm all out of gum.
Последнее предложение — зе бест.
Я, кстати, задумался, насколько в поледнее время перестал обращать внимания на дизайн сайтов. Во-первых, конечно, важно наполнение и работа функционала, во-вторых, что-то давно не видел действительно удачных дизайнов…

Information

Rating
Does not participate
Location
Лимассол, Government controlled area, Кипр
Date of birth
Registered
Activity