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



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

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

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

  ... maintenance methods
}

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

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

В моём примере.
...
Рейтинг: 0 / 0
Что означает такое объявление класса?
    #39636683
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В смысле - без реализации?
...
Рейтинг: 0 / 0
Что означает такое объявление класса?
    #39636786
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомПрактический смысл этого - какой?
Например (GenericEnum=anotherClass)
...
Рейтинг: 0 / 0
Что означает такое объявление класса?
    #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
Что означает такое объявление класса?
    #39636809
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProНормально для иерархических конструкций

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

Ну ты и череп.
...
Рейтинг: 0 / 0
Что означает такое объявление класса?
    #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
Что означает такое объявление класса?
    #39636853
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но вообще интересный приём.

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

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



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

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

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

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

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

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




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

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

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

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

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

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




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

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


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