ООП: доступ к методу класса из-вне

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: ООП: доступ к методу класса из-вне

Сообщение debi12345 » 23.05.2016 09:42:19

Странная полезность: создать класс и изредка вызывать функции (процедуры), "дергать" переменные....

Аналогия нэймспэйсов :)

Добавлено спустя 3 минуты 46 секунд:
Иначе зачем вообще такой класс нужен ?

Как например в PHP-примере - для эмуляции функционала массива в случаях, если фишек библиотечного массива не хватает.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: ООП: доступ к методу класса из-вне

Сообщение pupsik » 23.05.2016 10:20:04

AlphaBlend
в принципе такой вариант и создан для облегчения как бы. И это есть часть ООП (если не ошибаюсь). А вот использовать или нет - другой вариант.

debi12345 для меня это: дали костыли, но забыли что необходимо два. Но это личное мнение (старое мнение поэтому и подзабыл данный момент).
Есть объект - работаешь с ним. Часто используется функция - в отдельный модуль. А вот скрещивать.

п.с.
А пых-пых не в тему :twisted:
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: ООП: доступ к методу класса из-вне

Сообщение resident » 23.05.2016 14:19:01

AlphaBlend писал(а): Если есть класс , значит должен быть объект ( экземпляр этого класса ) , он должен быть создан и к нему должен быть доступ. Иначе зачем вообще такой класс нужен ?

Можно объявить потомка такого класса. Такие классы называются абстрактными, их экземпляры никогда не создаются. Они описывают общее для потомков, но без конкретной реализации. И кстати, весь Лазарус на таких классах.
Пример TStream.

AlphaBlend писал(а):Для чего же вообще создано ООП ? )

Полиморфизм?

debi12345 писал(а):Аналогия нэймспэйсов

Да, к тому же это топовый класс небольшой библиотеки. Объявлены только паблик: типы, функции аля StrTo и обратно. Сначала размазывал все это по потомкам, а потом дай, думаю, соберу всё в топовом. Мне пока нравится :)
resident
энтузиаст
 
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Re: ООП: доступ к методу класса из-вне

Сообщение zub » 23.05.2016 15:34:07

>>Странная полезность: создать класс и изредка вызывать функции (процедуры), "дергать" переменные....
Ну почему странная то? если вы не представляете как это примитнить - не значит что другие не представляют))
например:
1 - общие для всех инстансов класса данные, да можно обычными переменными и функциями, но классовыми логичней и красивее
2 - специализация генериков - вместо кучи процедур, один тип класса с нужным набором процедур
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: ООП: доступ к методу класса из-вне

Сообщение Лекс Айрин » 23.05.2016 16:18:03

zub писал(а):Ну почему странная то?


хотя бы потому, что зама парадигма ООП противится этому.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: ООП: доступ к методу класса из-вне

Сообщение pupsik » 23.05.2016 16:21:25

И кстати, весь Лазарус на таких классах.
весь = 100%. Вы уверены?
Мне пока нравится
замечательно :D

zub У нас могут быть разные понятия странности???
1. Понятие красоты - растяжимое. У каждого своя красивость. И логика в том числе.
2. не надо... куча никуда не денется... что там, что там... А то сразу: там куча, а там - нужное. Странно это..

п.с.
Пользователю все равно как. Лишь бы не глюкало и быстро делало необходимое. Или он будет смотреть код и говорить: ай какой красивый , а какая структура, иерархия, классы, а логика то.... да ещё и запускается... АЙ молодца. :mrgreen:
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: ООП: доступ к методу класса из-вне

Сообщение Лекс Айрин » 23.05.2016 16:22:11

впрочем, от нее уже давно остался только каркас..

Добавлено спустя 57 секунд:
pupsik писал(а): Или он будет смотреть код и говорить: ай какой красивый , а какая структура, иерархия, классы, а логика то.... да ещё и запускается... АЙ молодца. :mrgreen:


Структурирование просто помогает писать правильный код
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: ООП: доступ к методу класса из-вне

Сообщение pupsik » 23.05.2016 16:29:09

А что такое правильный код?

п.с.
Структурирование
а я и не спорю. Просто пользователю плевать (пардон) на разные "мелочи".
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: ООП: доступ к методу класса из-вне

Сообщение Лекс Айрин » 23.05.2016 17:15:14

pupsik писал(а):А что такое правильный код?


Правильным считается код, который имеет точно определенные реакции на определенные воздействия, без неявных побочных эффектов. Явные бывают, но считаются не рекомендуемыми.
pupsik писал(а):Просто пользователю плевать (пардон) на разные "мелочи".

Я бы нее сказал... Не забывайте, что пользователи компиляторов это мы -- программисты.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: ООП: доступ к методу класса из-вне

Сообщение resident » 23.05.2016 17:16:40

Лекс Айрин писал(а):хотя бы потому, что зама парадигма ООП противится этому

В каком месте?

Лекс Айрин писал(а):Структурирование просто помогает писать правильный код

У меня всё, что относится к классу или потомкам прикрыто топовым классом, типа неймспейс. Без привязки ничего не болтается. А если надо, то вот оно - хочешь экземпляр создавай, хочешь типы и рули ими. Неверный шаг сделать просто нельзя. Это и есть структура по-моему.

А как иначе? Все типы и конвертацию свалить без прикрытия в интерфейс модуля? А потом нужно будет использовать эту библиотеку и другую с такой же "структурой", где будет объявлено что-то с таким же названием. И начнутся советы соблюдать очередность объявления модулей, использовать UUnit1.Some, UUnit2.Some. Там не заметил, тут забыл и всё, бомба заложена.
resident
энтузиаст
 
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Re: ООП: доступ к методу класса из-вне

Сообщение Лекс Айрин » 23.05.2016 18:33:19

resident писал(а):В каком месте?


Инкапсуляция.

resident писал(а):А как иначе?


На данном этапе объект это не более чем запись с методами.

resident писал(а):И начнутся советы соблюдать очередность объявления модулей,


А вот это вообще косяк компилятора. Если переменная/тип/константа объявлена в модуле, то она видима независимо от очередности подключения модулей... в крайнем случае, можно прямо указать модуль в котором это располагается. (например, в моей проге это тип point определенный в двух модулях и, что самое смешное, оба нужны, так что указывал какой именно нужен в данный момент).
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: ООП: доступ к методу класса из-вне

Сообщение debi12345 » 23.05.2016 23:45:11

специализация генериков - вместо кучи процедур, один тип класса с нужным набором процедур

Именно.
В статический код базового класса можно вынести типо-независимые и авто-типо-приводимые алгоритмы - операции с массивами, арифметику и т.п... а типо-зависимый-оптимизированный код вынести-переопределить в классы-наследники под конкретные типы.

,
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: ООП: доступ к методу класса из-вне

Сообщение SSerge » 24.05.2016 05:37:21

Лекс Айрин писал(а):зама парадигма ООП противится этому.


Языки, построенные на парадигме ООП, а не на костылях процедурно-ориентированного кода, вообще не допускают создания чего либо вне системы классов.
Вам вот стоит пристально взглянуть на Яву (не на JavaScript, а на истинную). Ваще прелесть: типы данных такие, что как бы говорит о том - де вам, лохам этого достаточно. Unsigned int? А нафига? :mrgreen: Функция может генерить exception? А вы не хотите обрабатывать? Ну-ну. Значит должны в явном виде передать на предыдущий уровень. Это на всякий случай, чтобы вдруг не забыли. Нет любимого многими метода передачи параметров в функцию VAR - де на самом деле адресация аргументов через указатель. Процедур вообще нет. :mrgreen: И да, нужно определить какие-нибудь константы или функции, не привязанные к объекту - должны объявить как static и разместить в каком-нибудь классе.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: ООП: доступ к методу класса из-вне

Сообщение Лекс Айрин » 24.05.2016 09:49:04

SSerge, да, именно так и дОлжно.

Добавлено спустя 1 минуту 58 секунд:
и мне не нравятся языки С группы.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: ООП: доступ к методу класса из-вне

Сообщение SSerge » 24.05.2016 12:13:32

Лекс Айрин писал(а):и мне не нравятся языки С группы.


А к какой группе вы относите паскаль? Кроме декорации в виде begin/end он мало чем отличается от нелюбимой "C группы", а в рамках необъектной модели - так чуть ли не вообще трансляция 1:1.

... :D Питон отнесем к группе Фортрана, за то что и там и там используются отступы и они важны!
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Пред.След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 222

Рейтинг@Mail.ru
cron