|
|
|
Несколько разнородных классов с общими полями
|
|||
|---|---|---|---|
|
#18+
Необходимо создавать несколько разнородных объектов, имеющих и общие поля, и методы Т.е. поля код, наименование, описание будут у всех, как и некоторые методы, например - добавить, удалить Но другие поля будут разными, реализация некоторых методов также будет разная, кроме того будут и вообще разные методы Как лучше поступить?
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 03:34 |
|
||
|
Несколько разнородных классов с общими полями
|
|||
|---|---|---|---|
|
#18+
2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 04:14 |
|
||
|
Несколько разнородных классов с общими полями
|
|||
|---|---|---|---|
|
#18+
antox Т.е. поля код, наименование, описание будут у всех, как и некоторые методы, например - добавить, удалить Смешение мух с котлетами вижу я тут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 04:41 |
|
||
|
Несколько разнородных классов с общими полями
|
|||
|---|---|---|---|
|
#18+
softwarer antox Т.е. поля код, наименование, описание будут у всех, как и некоторые методы, например - добавить, удалить Смешение мух с котлетами вижу я тут. Хочется подробностей :) please ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 04:56 |
|
||
|
Несколько разнородных классов с общими полями
|
|||
|---|---|---|---|
|
#18+
antox Хочется подробностей :) please Во дворе стоит мусорный бак. У него есть методы "добавить" и "удалить", но нет "наименования". В баке лежит бомж Петя. У него есть наименование, но нет методов "добавить" и тем более "удалить". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 05:04 |
|
||
|
Несколько разнородных классов с общими полями
|
|||
|---|---|---|---|
|
#18+
Всегда можно добавить Пете бутылку и удалить из него почку. А название у бака всетаки есть. ;) Есть базовый Паспортизируемый тип. От него рождены Физический и Биологический типы. От Физического типа рожден тип мусорный бак, от биологического рожден Петя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 05:40 |
|
||
|
Несколько разнородных классов с общими полями
|
|||
|---|---|---|---|
|
#18+
softwarer antox Хочется подробностей :) please Во дворе стоит мусорный бак. У него есть методы "добавить" и "удалить", но нет "наименования". В баке лежит бомж Петя. У него есть наименование, но нет методов "добавить" и тем более "удалить". Планируется не так... Есть 8 баков, одни из них под мусор, некоторые под еду, другие под химикаты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 05:48 |
|
||
|
Несколько разнородных классов с общими полями
|
|||
|---|---|---|---|
|
#18+
Тогда, ИМХО, наследования для начала хватит. Возможно с абстрактным базовым классом. Если потом не выяснится, что иногда приезжает мусоровоз от компании-аутсорсера, которому нужно знать что в этих баках и выгружать из них мусор... через интерфейсы (но тогда придется каждый раз писать реализацию одинаковых методов и все равно наследовать реализующий интерфейс класс, т.к. будет разный состав полей) Интерфейсы, вроде, можно в любой момент прикрутить ЕМНИП. Главное тогда наследоваться от TInterfacedObject, но это вроде ни на что кроме поддержи интерфейсов не влияет. И непонятно зачем писать реализацию одинаковых методов, если её можно один раз прописать в родителе. Короче все три варианта в первом посте - не взаимоисключающие, а дополняющие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 10:28 |
|
||
|
Несколько разнородных классов с общими полями
|
|||
|---|---|---|---|
|
#18+
Есть сабжевая задача это банальная КИС с карточками клиента, то ООП тут будет чрезвычайно лишним. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 10:39 |
|
||
|
Несколько разнородных классов с общими полями
|
|||
|---|---|---|---|
|
#18+
L_argo Есть сабжевая задача это банальная КИС с карточками клиента, то ООП тут будет чрезвычайно лишним. Предлагаете писать процедурный код?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 11:14 |
|
||
|
Несколько разнородных классов с общими полями
|
|||
|---|---|---|---|
|
#18+
L_argo Есть сабжевая задача это банальная КИС с карточками клиента, то ООП тут будет чрезвычайно лишним. Раскидай в 3х словах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 16:02 |
|
||
|
Несколько разнородных классов с общими полями
|
|||
|---|---|---|---|
|
#18+
alekcvp Предлагаете писать процедурный код?.. Как-то не хочется, баки могут повторяться 3 первых, 2 третьих и 5 шестых, так что лучше все-таки ООП :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 16:04 |
|
||
|
Несколько разнородных классов с общими полями
|
|||
|---|---|---|---|
|
#18+
rgreat Есть базовый Паспортизируемый тип. Проблема в том, что паспортизируемый тип - не контейнер. По-хорошему, здесь нужно множественное наследование. А попытка внедрить базовый суперкласс, объединяющий в себе черты всех предков, которые в разных комбинациях понадобятся кому-то из потомков - понятно, откуда растёт, но приводит к отвратительным последствиям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 16:08 |
|
||
|
Несколько разнородных классов с общими полями
|
|||
|---|---|---|---|
|
#18+
antox Т.е. поля код, наименование, описание будут у всех, как и некоторые методы, например - добавить, удалить Но другие поля будут разными, реализация некоторых методов также будет разная, кроме того будут и вообще разные методы Если убрать сбивающую с толку, но ничего не описывающую, семантику, то задачу: Поля Prop1, Prop2, Prop3 будут у всех, как и некоторые методы, например - Method1, Method2 Но другие поля будут разными, реализация некоторых методов также будет разная, кроме того будут и вообще разные методы Решать нужно через обычное наследование ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2020, 16:38 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=40019771&tid=2037853]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
163ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 501ms |

| 0 / 0 |
