Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   private vs public (https://javascript.ru/forum/misc/29797-private-vs-public.html)

dmitriymar 11.07.2012 19:15

almac,
это его шестая или более попытка прижиться на форуме,все прежние под бан попадали-так что его бан это вопрос времени.

Drimogemon 11.07.2012 19:23

Цитата:

Сообщение от almac
ну и зачем вы так с людьми? не надо нас так люто ненавидеть... я про все ваши сообщения, которые не касаются javascript

вы видно перепутали ник и хотели обратиться к dmitriymar ?
Цитата:

Сообщение от almac
я про все ваши сообщения, которые не касаются javascript

и можно примерчик его таких сообщений)? я пока только одно насчитал где он оскорбляет меня, есть еще примеры)?

п.с. еще раз повторюсь ВОТ лучшая реализация ООП на javascript
https://github.com/Livanderiamarum/O...ster/README.md

лучшая по всем параметрам

oneguy 11.07.2012 19:37

В Джаваскрипте нет собственной поддержки приватных методов.
В примере dmitriymar'а приватные переменные определяются внутри конструктора. При этом они недоступны снаружи конструктора, однако, на мой взгляд, в этом подходе есть недостаток: все методы, которые должны иметь доступ к приватным переменным, должны создаваться для каждого экземпляра класса вместо одного метода в прототипе.
Поэтому подход Drimogemon'а кажется мне более рациональным: использовать определённые конвенции для отделения приватных и публичных методов, например имена приватных методах начинать с символов "_".

dmitriymar 11.07.2012 19:43

oneguy,
неужто вы думаете что существует один шаблон наследования? Выбор большой шаблонов и у каждого свои возможности

oneguy 11.07.2012 19:58

Ещё не забывайте, что в Джаваскрипте есть собственная поддержка свойств доступа. Поэтому вместо этого:
function Car(speed) {
  this._speed=speed;
}
Car.prototype.getSpeed=function () {
  alert("Скорость: "+this._speed);
  return this._speed;
};
Car.prototype.setSpeed=function (v) {
  this._speed=v;
  alert("Скорость установлена на "+v);
};
var car = new Car(100);
car.setSpeed(car.getSpeed()+1)

гораздо удобнее работать с этой реализацией Car:
function Car(speed) {
  this._speed=speed;
}
Car.prototype={
  get speed() {
    alert("Скорость: "+this._speed);
    return this._speed;
  },
  set speed(v) {
    this._speed=v;
    alert("Скорость установлена на "+v);
  }
};
var car = new Car(100);
car.speed++;

oneguy 11.07.2012 20:06

Цитата:

Сообщение от dmitriymar (Сообщение 188143)
oneguy,
неужто вы думаете что существует один шаблон наследования? Выбор большой шаблонов и у каждого свои возможности

Да, естественно. Однако я хотел сказать, что шаблон, предложенный вами не нужно использовать для довольно общей задачи с приватными и публичными методами.

Drimogemon 11.07.2012 20:18

Цитата:

Сообщение от oneguy
Однако я хотел сказать, что шаблон, предложенный вами не нужно использовать

Конечно не нужно использовать, сравнить это хотя бы с моей реализацией ООП. Которая кстати самая лучшая из существующих.
Да вы даже посмотрите как обьекты созданные классами выгладят в консоли, МАКСИМАЛЬНАЯ ОПТИМИЗАЦИЯ,
использование делегации НА ВСЮ КАТУШКУ.
https://github.com/Livanderiamarum/O...ster/README.md

vadim5june 11.07.2012 20:35

Цитата:

Сообщение от Drimogemon (Сообщение 188157)
Которая кстати самая лучшая из существующих.

Любой фреемворк или программу можно оценить только тогда когда она доходит до стадии практического применения
Вот если Вы сделаете у себя виджеты-интерфейсы UI и какуюто страницу примеров с такими базовыми классами как
окна табы слайдеры итд только тогда можно сравнивать и говорить чье лучше
А пока по вашим программам даже сказать нечего-все на очень ранней стадии и возможно из этой стадии и выходить не собирается

dmitriymar 11.07.2012 21:13

Цитата:

Сообщение от oneguy
Однако я хотел сказать, что шаблон, предложенный вами не нужно использовать для довольно общей задачи с приватными и публичными методами.

это то причём? вопрос был о приватности -возможно или нет-показал один из шаблонов,причём о наследовании в том момент речь не шла

Drimogemon 11.07.2012 21:39

Цитата:

Сообщение от vadim5june
А пока по вашим программам даже сказать нечего-все на очень ранней стадии и возможно из этой стадии и выходить не собирается

не понял, как им образом создание виджетов (на чем я кстати и тестировал этот шаблон ООП) связано с его качеством, качество может каждый оценить протевтировав САМ. Уже по примерам по ссылке должно быть понятно как удобно и сахарно стало работать с ООП. Создай видежты себе сам используя это и другие реализации ООП, и сравни где было удобнее.


Часовой пояс GMT +3, время: 04:13.