Съставки за спасяване на наследството

И проблемите започват

Понятието наследство, е идея, която трябва да овладеят, когато ние използваме нашия езикАко искате да организирате собствен код, около обектите, има голяма вероятност, че ще се сблъскват, когато се налага да използвате наследство. Добре, че наследството носи множество хипервръзки, това не е отговор на всички въпроси. Ако попаднат в използването на сляпо наследство, има голяма вероятност, че сте mordiez пръстите, няколко месеца по-късно, когато ще трябва да се промени функционален обхват на приложения.

Как да се направи

Разбира се, съществува изкушението да се каже:"Ако аз наследява Foo, тогава аз съм всички възможности, без усилия.". Но в същото време, ще завържете много силно си два класа, и ако те идват, за да разпръсне в бъдеще вие няма да можете, че можете просто да кажете,"Ок, те се разделят, когато някои функции". Тогава ще започнете да разбирате, че това сега е трудно да се провери на всеки от тези класове, и че той далеч не е очевидно, да ги разделят. Грижа за разработчици нямат опит в това, че никой не осъзнава този факт, че в средата на проекта, или когато клиентът иска да направи промени във функционирането на съществуващ елемент. Можете да вярвате на думите ми, това в крайна сметка се случва. Трябва да знаете, откриване на различни видове връзки, които могат да съществуват между класовете. Клас може да бъде свързан с други три вида отношения: това винаги ще бъде по-гъвкав, че mixin и няма да бъде пряко свързан с класа, в който тя се намира, за разлика от наследство. Така че, сега превозни средства, които имат скорост, автомобили могат да се вози и хеликоптери могат да летят. А сега да предположим, че искаме да създадем клас за самолети, за които технически могат да се вози и да лети. Самолетът ни се намира по средата между автомобила и хеликоптер. Разбира се, може да се използва mixins, но това не е нито повече, нито по-малко, че множествено наследяване. Това би било много по-добре от сегашната ни решение и ще реши нашия проблем. Друго решение би било да използвате състав, който позволява изолиране на поведение в специализирани класове. Може да бъде след това да се използват екземпляри на тези класове в други класове. Това позволява да има класове, характерни, обемен, без методи няма, а е много лесно проверими. Използвате състав, е да има достъп до цялата мощ на клас, предназначени за манипулиране с обектите. Правим така: Аз признавам, че това решение е по-тромава, отколкото mixins, но тя е много по-гъвкав и мощен, и ще бъде на практика, разбира се, по-лесно да се провери. За демонстрация аз инициализиране на обекти на Колела и Крилата на муха, но на практика, ние скоро ще направят тази работа инициализация, в метода на инициализиране, който ще има постоянни обекти и да се избегнат проблеми на конкуренцията. На практика, няма причина да следвате точен метод, защо се използват състав, mixins или наследство изцяло, когато можете да се смесват три.

Трябва да могат да се адаптират и да използват решение, което ще бъде по-гъвкав.

Може да се използва наследяване, когато това е необходимо, не забравяйте,"предприемачът-това е човек".

Можете да преминете към mixins, когато ние сме в ситуация"разработчик, действа като наемен работник". Можете да потърсите вероятно), ако тази връзка се оказва нещо, което е сложно, обект, изисква клас, посветен. Обобщение на съдържанието на тази статия, мисля, вашите класове, така че те да са възможно най-модулен може би не чук главата си през прозореца, когато вие няма да можете да изтеглите впоследствие трябва да се определи отговорностите на всеки от тях. Ако вашите тестове стават трудно да се установи, това често е знак за архитектура проблеми, които трябва да се сложи чип в ухото. Днес ще говоря за архитектурата на софтуер. js. Сиси, това е възможно. Не останете насаме.