Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Что означает такое объявление класса? / 25 сообщений из 26, страница 1 из 2
26.04.2018, 10:47
    #39636615
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что означает такое объявление класса?
Код: c#
1.
2.
public class myClass : anotherClass<myClass>
{}



Зачем это?
...
Рейтинг: 0 / 0
26.04.2018, 10:57
    #39636621
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что означает такое объявление класса?
Нормально для иерархических конструкций
...
Рейтинг: 0 / 0
26.04.2018, 11:01
    #39636624
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что означает такое объявление класса?
Shocker.ProНормально для иерархических конструкций

Практический смысл этого - какой?
...
Рейтинг: 0 / 0
26.04.2018, 11:20
    #39636634
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что означает такое объявление класса?
Слушай, ну ты задал абстрактный вопрос, поэтому можешь получить только абстрактный ответ

Может быть например так:
Код: c#
1.
2.
3.
4.
5.
6.
class anotherClass<T>
{
  public List<T> Children;

  ... maintenance methods
}

тем самым anotherClass обеспечивает построение дерева классов T
...
Рейтинг: 0 / 0
26.04.2018, 11:27
    #39636638
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что означает такое объявление класса?
Shocker.Proтем самым anotherClass обеспечивает построение дерева классов T

Обеспечивает этот функционал для myClass?
...
Рейтинг: 0 / 0
26.04.2018, 11:41
    #39636649
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что означает такое объявление класса?
Необязательно, может и для внешних потребителей.
...
Рейтинг: 0 / 0
26.04.2018, 12:10
    #39636674
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что означает такое объявление класса?
Shocker.ProНеобязательно, может и для внешних потребителей.

В моём примере.
...
Рейтинг: 0 / 0
26.04.2018, 12:15
    #39636683
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что означает такое объявление класса?
В смысле - без реализации?
...
Рейтинг: 0 / 0
26.04.2018, 14:37
    #39636786
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что означает такое объявление класса?
Агнец за бортомПрактический смысл этого - какой?
Например (GenericEnum=anotherClass)
...
Рейтинг: 0 / 0
26.04.2018, 15:12
    #39636807
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что означает такое объявление класса?
Агнец за бортом
Код: c#
1.
2.
public class myClass : anotherClass<myClass>
{}




Зачем это?

Это CRTP (Curiously Recurring Template Pattern)

Читайте на хабре

https://habr.com/post/211743/


Читайте у Эрика Липперта

https://blogs.msdn.microsoft.com/ericlippert/2011/02/03/curiouser-and-curiouser/
...
Рейтинг: 0 / 0
26.04.2018, 15:14
    #39636809
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что означает такое объявление класса?
Shocker.ProНормально для иерархических конструкций

Нормально для fluent chaning builders
...
Рейтинг: 0 / 0
26.04.2018, 15:57
    #39636839
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что означает такое объявление класса?
hVosttЭто CRTP (Curiously Recurring Template Pattern)

Ну ты и череп.
...
Рейтинг: 0 / 0
26.04.2018, 16:08
    #39636850
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что означает такое объявление класса?
И у Эрика же.

My advice is to think very hard before you implement this sort of curious pattern in C#; do the benefits to the customer really outweigh the costs associated with the mental burden you're placing on the code maintainers?

Я как увидел - подумал, что это вызов el diablo.
...
Рейтинг: 0 / 0
26.04.2018, 16:15
    #39636853
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что означает такое объявление класса?
Но вообще интересный приём.

Именно для fluent.
...
Рейтинг: 0 / 0
27.04.2018, 11:20
    #39637246
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что означает такое объявление класса?
А если так:

Код: c#
1.
2.
class dbEntity: repository<dbEntity>{
}



Это считается нормальным?
...
Рейтинг: 0 / 0
27.04.2018, 11:28
    #39637259
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что означает такое объявление класса?
Агнец за бортом,

зачем в классе сущности реализовывать репозиторий?
мухи от котлет должны быть отдельно, в файле сущности БД не должно быть ничего кроме свойств и метаданных.
а репозиторий должен уметь взаимодействовать с любой сущностью через обощение. если уж вы делайте свой слой взаимодействия с БД.
Когда концепция ООП соблюдается, классы занимают не более 100 строк, каждый класс выполняет свою функцию.
Даже с точки экономии памяти, ваш подход избыточен. Я бы на 3ечку оценил :) не обижайтесь.
невсегда вообще имеет смысл делать это самому, всё это уже написано 1000 раз и есть лучшие варианты из этой 1000
...
Рейтинг: 0 / 0
27.04.2018, 11:48
    #39637288
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что означает такое объявление класса?
Roman MejtesЯ бы на 3ечку оценил :) не обижайтесь.

Дружище, я не в свой код смотрю. O_O
...
Рейтинг: 0 / 0
27.04.2018, 11:58
    #39637301
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что означает такое объявление класса?
Агнец за бортомRoman MejtesЯ бы на 3ечку оценил :) не обижайтесь.

Дружище, я не в свой код смотрю. O_O

И мне несколько диковато. В кого не ткни, все ножку отставляют и принципы SOLID задом неперёд пересказать могут, а как в код посмотришь...
...
Рейтинг: 0 / 0
27.04.2018, 11:58
    #39637302
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что означает такое объявление класса?
Агнец за бортомА если так:

Код: c#
1.
2.
class dbEntity: repository<dbEntity>{
}




Это считается нормальным?
Все относительно)
В пркладном коде не нормально, т.к. внутри EF уже есть репозитарий.
...
Рейтинг: 0 / 0
27.04.2018, 12:04
    #39637311
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что означает такое объявление класса?
Petro123,

EF не всегда хороший выбор, когда нужна высокая произодительность в высоко нагруженных системах, мне кажется EF не самый удачный выбор. Но никогда не мешает комбинировать подходы, но сильно их не запутывать
...
Рейтинг: 0 / 0
27.04.2018, 12:05
    #39637314
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что означает такое объявление класса?
Petro123т.к. внутри EF уже есть репозитарий.

То, что там есть - недостаточно. proof of concept - не более.
...
Рейтинг: 0 / 0
27.04.2018, 12:05
    #39637315
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что означает такое объявление класса?
Roman Mejtesно сильно их не запутывать

И-эх, а я ведь самую безделицу затронул
...
Рейтинг: 0 / 0
27.04.2018, 12:14
    #39637332
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что означает такое объявление класса?
Roman MejtesEF не всегда хороший выбор,
Конечно.
Тут главное, что такой заумный код внутри Любой билиотеки.
А не снаружи по проекту.
Первый пример например в linq. Чтобы через точку компактно писать.
Второй пример в МойОРМ.
...
Рейтинг: 0 / 0
27.04.2018, 12:15
    #39637335
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что означает такое объявление класса?
Агнец за бортомPetro123т.к. внутри EF уже есть репозитарий.

То, что там есть - недостаточно. proof of concept - не более.
Это либа а не икона. Выбирай по вкусу.
...
Рейтинг: 0 / 0
27.04.2018, 12:39
    #39637352
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что означает такое объявление класса?
Агнец за бортомА если так:

Код: c#
1.
2.
class dbEntity: repository<dbEntity>{
}




Это считается нормальным?

Active Record? )
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Что означает такое объявление класса? / 25 сообщений из 26, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]