Loading...
vaskoleon avatar vaskoleon 23 Точки

Въпрос относно Command Pattern

Здравейте. Може ли да ми поясните какво точно представлява "Command Pattern"-a, и какви са начините да бъде имплементиран чрез C#? Питам, защото разгледах Wikipedia страницата за Command Pattern#C#, но имплементацията там ми се стори твърде абстрактна - нямаше почти нищо общо с това, за което се говори в лекциите и подготовките за изпита. Ако някой може да ми даде подробно обяснение за това как да използваме "Command Pattern" в писането на проекти, ще му бъда много благодарен.

0
C# OOP Advanced
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

ресурси в нета има много аз си намерих и апликация за телефона въобще стига да искаш инфо много. Иначе тъй като решаваш Minedraft ще ти дам примера с него : имаш harvestercontroler  provider controler и 2та контролера правят определени неща като не е нужно да знаят какво прави другия или как го прави. Затова имплиментираме Command interpreter като неговата задача е да разчете каква е командата и след това да повика необходимото действие което да я изпълни.

Защо се прави заради extensability и solid principles общо взето заради strong cohesion loose coupling. А как се прави. Значи подаваме на Comand interpreter-a  2та контрола тои вече има достъп до тях. И създаваме командите като класове Общо взето метода които ще бъде изпълняван се подава като клас и това ни позволява примерно като изпълняваме Моdechange командата да извикаме само harvester.changemode или ако поправяме  Providers да извикаме само providerscontroler.repair.  A  и в бъдещ момент ни позволява да добавим  n-брои нови функционалности като ще е нужно да ги добавим само в  съотвения контролер като тип команда,interper-a ще разчете и изпълни командата без да има нужда да знае тя какво прави. 

И логическата връзка както си я видял и по графиките е :2та контролера са видими за  Commandinterprera,тои получава типа команда,извиква я създавайки нейн обект и я изпълнява. И всичко това става с reflection. И реално 2та контролера незнаят каква е командата и не ги интересува interprerter-a я обработва и изпълнява а самата команда държи в себе си само това което и трябва.

Дори предпоследния тест на Minedraft тества колко неща приема конструктора на командите,има го накрая на видето от подготовката.

2
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.