Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
2 / 2 / 2
Регистрация: 23.02.2012
Сообщений: 208
1

Entity Component System, можно ли доработать класс Entity

18.10.2014, 00:21. Показов 1475. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, сделал свою реализацию Entity Component System, но хотелось бы узнать ваше мнение по поводу класса Entity. Можно ли ускорить его работу, сократить код для доступа к его компонентам?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
    public class Entity 
    {
        private Dictionary<Type, Component> _components = new Dictionary<Type, Component>();
 
        public void Add(Component component)
        {
            _components.Add(component.GetType(), component);
            component.Entity = this;
        }
        public void Remove(Type componentType)
        {
            _components[componentType].Entity = null;
            _components.Remove(componentType);
 
        }
 
        public T Get<T>() where T : class
        {
            if (_components.ContainsKey(typeof(T))) return _components[typeof(T)] as T;
 
            return null;
        }
 
    }
 
    public abstract class Component
    {
        public Entity Entity { get; set; }
 
        public T Get<T>() where T : class
        {
            return Entity.Get<T>();
        }
 
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2014, 00:21
Ответы с готовыми решениями:

Реализация паттерна Entity-Component-System
Возникло желание попробовать реализовать паттерн Entity-Component-System. Изрядно начитавшись...

@OneToOne or @ManyToOne on `my entity#1` references an unknown entity `my entity#2`
Привет всем! У меня появилась такая ошибка когда я работаю с двумя базами, именно когда делаю save...

Как сделать чтобы Entity всегда двигался ко второму Entity
здравствуйте!!! Скажите пожалуйста, знающие люди, как сделать чтобы Entity всегда двигался ко...

Entity Framework. Удаление entity без удаления связей
Вечер добрый. Есть модель Coder First. Каскадное удаление запрещено. Удаление произвожу так: ...

2
Злой няш
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
18.10.2014, 09:44 2
Цитата Сообщение от PlutDem Посмотреть сообщение
C#
1
2
3
4
5
6
public T Get<T>() where T : class
{
    if (_components.ContainsKey(typeof(T))) return _components[typeof(T)] as T;
 
    return null;
}
TryGetValue

Добавлено через 1 минуту
Так-то Entity плох тем, что если это например "машина", то у нее 4 однотипных компонента "колесо".
0
2 / 2 / 2
Регистрация: 23.02.2012
Сообщений: 208
18.10.2014, 14:31  [ТС] 3
Цитата Сообщение от I2um1 Посмотреть сообщение
Так-то Entity плох тем, что если это например "машина", то у нее 4 однотипных компонента "колесо".
Сам не знаю, что с этим делать. Можно хранить компоненты одного типа в списке, но это слишком затратно по памяти, не говоря уже о том, что затруднится доступ к компонентам, которые существуют в единственном экземпляре, а таких большинство.
Еще можно сделать компонент НаборКолес и хранить компоненты Колесо в нем, однако тогда нельзя будет связать Entity и Колесо.
0
18.10.2014, 14:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.10.2014, 14:31
Помогаю со студенческими работами здесь

Как сделать, чтобы при точном совпадении всех атрибутов entity в таблицу печаталась одна строка с количеством этих entity ?
В программировании я всего месяц – потребовалось написать плагин на RUBY. Написал , все работает....

Блок библиотеки моделирования процессов Enter. Функция take(entity) требует параметр "entity". Что передать в функцию?
В виде параметра функции take вношу: имяСвоегоАгента или Agent или entity. Консоль на любой из...

Ошибка 'System.Data.Entity.Infrastructure.DbUpdateException'
Как можно исправить данную ошибку?

EF to Client что делать с System.Data.Entity.DynamicProxies?
Здравствуйте, вопрос как сделать правильно. Есть EF модель и два метода которые получают список из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru