Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Скрытие методов родителя (число прочтений - 4544 )
DionX
Senior Member
****
Отсутствует



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
Скрытие методов родителя
24. Октября 2006 :: 00:41
Печать  
Допустим есть класс МойКласс:
Код
Выбрать все
class МойКласс = MyClass.ert : ИндексированнаяТаблица 


Как скрыть в его интерфейсе некоторые методы индексированной таблицы (вернее большинство методов)? Например, нужно чтоб не боло метода НоваяСтрока(), а был метод Добавить() при котором проверяется ряд условий.
  
Наверх
ICQ  
IP записан
 
DrACe
1c++ donor
1c++ power user
Отсутствует


1С++ любитель

Сообщений: 447
Местоположение: г. Новосибирск
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Скрытие методов родителя
Ответ #1 - 24. Октября 2006 :: 03:05
Печать  
я в ООП не очень силен (даже скорее - совсем ни бум-бум), но что если переопределить эти методы, вызывая в них соответствующее исключение?
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Скрытие методов родителя
Ответ #2 - 24. Октября 2006 :: 03:07
Печать  
Только переопределить. Типа того:

Функция НоваяСтрока() Экспорт
   #error Используйте метод Добавить()
КонецФункции
  
Наверх
 
IP записан
 
DionX
Senior Member
****
Отсутствует



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
Re: Скрытие методов родителя
Ответ #3 - 24. Октября 2006 :: 04:33
Печать  
Жаль, что только так, надеялся на чудо Подмигивание
Спасибо!
  
Наверх
ICQ  
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Скрытие методов родителя
Ответ #4 - 24. Октября 2006 :: 13:49
Печать  
А еще можно сделать инкапсуляцию. Релизация примерно такая:
Код
Выбрать все
Перем ИТЗ;

Процедура Конструктор()
   ИТЗ=СоздатьОбъект("ИндексированнияТаблица");
КонецПроцедуры

Процедура НоваяСтрока()
  ИТЗ.НоваяСтрока();
  ИТЗ.НоваяСтрока();
КонецПроцедуры 

  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Скрытие методов родителя
Ответ #5 - 24. Октября 2006 :: 14:01
Печать  
sedmin

можешь сформулировать разницу между инкапсуляцией и агрегацией?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Скрытие методов родителя
Ответ #6 - 24. Октября 2006 :: 14:29
Печать  
DionX
Агрегируй индексированную таблицу в своем классе и будет чудо Подмигивание
  
Наверх
ICQ  
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Скрытие методов родителя
Ответ #7 - 24. Октября 2006 :: 16:44
Печать  
Ну конечно, вместо инкапсуляции надо читать агрегацию  Улыбка
  
Наверх
 
IP записан
 
DionX
Senior Member
****
Отсутствует



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
Re: Скрытие методов родителя
Ответ #8 - 25. Октября 2006 :: 08:32
Печать  
kms писал(а) 24. Октября 2006 :: 14:01:
sedmin

можешь сформулировать разницу между инкапсуляцией и агрегацией?

Программирую давно, но всё как-то по детски (vb+access/sql, 1с), серьёзные книжки об ООП начал читать с месяц назат и понятия инкапсуляция и агрегация ещё совсем молоды в моей голове, что б найти им реальное применение на практики.
И каков будет ответ на этот вопрос "разница между инкапсуляцией и агрегацией"?
А такой ответ на мой вопрос этого топика мне очь понравился:
sedmin писал(а) 24. Октября 2006 :: 13:49:
А еще можно сделать инкапсуляцию. Релизация примерно такая:
Код
Выбрать все
Перем ИТЗ;

Процедура Конструктор()
   ИТЗ=СоздатьОбъект("ИндексированнияТаблица");
КонецПроцедуры

Процедура НоваяСтрока()
  ИТЗ.НоваяСтрока();
  ИТЗ.НоваяСтрока();
КонецПроцедуры 


спасибо.
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать