она не строгая — она адаптивная. программист сам решает где ему нужна строгая, а где мягкая, а также какой способ приведения типов больше подходит под решаемую задачу (aTitleString, например)
мне не нужна «нормальная» типизация. я хочу сам конструировать типы и правила их приведения
а вот зачем нужна строгая типизация — написано в статье про адаптивную типизацию, в самом начале.
строгая типизация удобней в отладке. мягкая — в написании.
Вы занимаетесь зуйней! — Это если не дошло с первого раза.
А лично от Вас, мне хотелось бы понять, для чего вообще нужны так называемые геттеры и сеттеры(да, кстати, это паттерн проектирования), какая их роль в проектировании класса?
Как контролировать и какие сторонние объекты?
а методы типа getProperty/setProperty — нужны для того, что бы класс имел унифицированный интерфейс для работы со свойствами. И когда в будущем Ваш маленький класс, где сначала свойства были примитивами, а теперь стали полноценными объектами с инициализацией или надо будет добавить кеширование для свойства — тогда вы просто измените метод get — и получите что хотели, но при этом сама система страдать не будет.
[php]
getProperty() {
return $this->property;
}
И скажу Вам на будущие, такие методы лучше всего иметь реализованными на прямую, а не через __call или __get/__set. код потом проще читать и сопровождать.
ты действительно думаешь, что такой интерфейс:
$obj->setChildsCount( $obj->getChildsCount() + 5 );
лучше такого?
$obj->setChildsCount+= 5;
а моё решение позволяет сначала предоставить прямой доступ к полю, а когда потребуется это изменить — просто добавить нужные методы и они будут вызваны вместо прямой записи данных. интерфейс не поменяется и останется столь же удобным как и был.
Независимо перегружаемые свойства