LINUX.ORG.RU

История изменений

Исправление LightDiver, (текущая версия) :

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

В своей базе данных я так и сделал. У меня в конструкторе передаются нужные таблицы для работы и их параметры, а затем я реализовал совсем разные методы работы с базами. Запись в хэш-таблицы, запись в строки, запись с уникализацией параметров, без, запись с адресами, без адресов, цикличные таблицы, бинарные таблицы итд итп.

В любом случае наследуешь ты для модификации класса. То есть, тебе нужно чтото старое от класса и добавить что то новое. Создаешь в новом классе экземпляр старого и вот тебе доступно старое. Создаешь в новом классе новые методы и вот тебе новое. Просто чуть другая организация работы.

Допустим моя база данных. Я могу не делать методы для работы с каждым типом таблиц. Допустим, у меня только инициализация в базовом классе: он принимает таблицы, принимает параметры. Все.

Затем я создаю класс работы с хэш-таблицами. В нем создаю наш базовый экземпляр. Через него методами нового класса работаю с чем надо.

Затем создаю класс работы с бинарными таблицами. В нем экземпляр базового и опять же так же работаю с чем надо.

Я понимаю разницу, понимаю варианты работы. И вижу с чем как можно работать. Мне доступны все методы старого класса, доступны методы нового. Просто чуть иначе, чем при наследовании. При наследовании они доступны как просто методы нового класса. При композиции, через параметр нового класса. И вся разница.

Вот я сейчас подумал, а ведь и правда надо сделать композицией. Чтобы каждый экземпляр работы с базами не тянул за собой код всех вариантов работы. А это идея…

Исходная версия LightDiver, :

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

В своей базе данных я так и сделал. У меня в конструкторе передаются нужные таблицы для работы и их параметры, а затем я реализовал совсем разные методы работы с базами. Запись в хэш-таблицы, запись в строки, запись с уникализацией параметров, без, запись с адресами, без адресов, цикличные таблицы, бинарные таблицы итд итп.

В любом случае наследуешь ты для модификации класса. То есть, тебе нужно чтото старое от класса и добавить что то новое. Создаешь в новом классе экземпляр старого и вот тебе доступно старое. Создаешь в новом классе новые методы и вот тебе новое. Просто чуть другая организация работы.

Допустим моя база данных. Я могу не делать методы для работы с каждым типом таблиц. Допустим, у меня только инициализация в базовом классе: он принимает таблицы, принимает параметры. Все.

Затем я создаю класс работы с хэш-таблицами. В нем создаю наш базовый экземпляр. Через него методами нового класса работаю с чем надо.

Затем создаю класс работы с бинарными таблицами. В нем экземпляр базового и опять же так же работаю с чем надо.

Я понимаю разницу, понимаю варианты работы. И вижу с чем как можно работать. Мне доступны все методы старого класса, доступны методы нового. Просто чуть иначе, чем при наследовании. При наследовании они доступны как просто методы нового класса. При композиции, через параметр нового класса. И вся разница.