|
|
|
| Прошу проверить и сделать замечания.
Написал первую свою программу с применением возможностей ооп.
<?
// подсчт разницы между двумя единицами времени
class Time {
public $mintime;
public $maxtime;
public function GapOfTimes() {
$max = strtotime($this->maxtime);
$min = $this->mintime;
$diff = $max-$min;
print gmdate("H", $diff)." час, ".gmdate("i", $diff)." минут, ".gmdate("s", $diff)." секунд";
}
public function setMaxtime ($time) {
$this->maxtime = $time;
}
public function setMintime ($time) {
$this->mintime = $time;
}
}
$time = new Time;
$time->setMintime(time());
$time->setMaxtime("today 22:25:00");
$time->GapOfTimes();
?>
|
| |
|
|
|
|
|
|
|
для: Ильдар
(29.07.2011 в 20:00)
| | если честно, то ваш пример - это приблизительно то же самое, если бы Вы написали
Прошу проверить и сделать замечания.
<?php
echo "Hello, Word!";
|
подберите такой пример, который будет раскрывать основные концепции ООП. здесь же смысла нету совсем. можно это всё сделать одной маленькой функцией GapOfTimes с 2 параметрам $mintime и $maxtime | |
|
|
|
|
|
|
|
для: psychomc
(29.07.2011 в 21:29)
| | да, верно заметил. Просто я привыкаю к коду в общем. Пытаюсь поработать так, чтобы для глаз код был родным. | |
|
|
|
|
|
|
|
для: Ильдар
(29.07.2011 в 20:00)
| | Вот что не понравилось, вы создайте объект, который требует двух временных меток, которые вы заполняете двумя различными методами. Если внешний программист забудет их вызвать - объект останется несогласованным. Лучше, если бы эти временные метки передавались через конструктор, т.е. чтобы нельзя было создать неинициализированный объект.
Опять же не понятно, почему одна временная метка требует одного формата, а другая - другого. Идиально было бы, чтобы обе они принимали либо время в UNIXSTAMP, либо форматированную строку, а методы setMaxtime() и setMintime() сами бы пытались бы извлечь временную метку в зависимости от того, что им поступает - строка или число. Ваша задача не просто задействовать класс, а сделать его максимально удобным для внешнего программиста - чтобы он практически не думал о нем во время работы, а так ему нужно будет постоянно обращаться к классу или документации, чтобы вспомнить какому из методов нужно строку, а кому число.
В общем лучше думать в перевую очередь не о классе, а о том, кто им будет пользоваться. ООП для того и задуман, чтобы облегчить жизнь в большом и сложном проекте. Классы должны быть настолько удобны, насколько это вообще возможно. | |
|
|
|
|
|
|
|
для: cheops
(29.07.2011 в 22:58)
| | Отлично, вот это здоровая критика. Спасибо.
Что значится под словом "метка" ?
> "вы создайте объект, который требует двух временных меток" | |
|
|
|
|
|
|
|
для: Ильдар
(30.07.2011 в 04:31)
| | Здесь "значение", двух временных значений, просто время обычно представляют как шкалу от прошлого к будущему, а значения на этой шкале традиционно называют метками шкалы. | |
|
|
|