Composition over Inheritance Flashcards
Vilket av följande används för att indikera en klass i UML-diagram?
- En cirkel
- En triangel
- En rektangel med tre sektioner
- En linje
- En rektangel med tre sektioner
Vad representerar ett “+” tecken framför ett attribut eller en metod i ett UML-diagram?
- Attributet/metoden är privat
- Attributet/metoden är skyddat
- Attributet/metoden är publikt
- Attributet/metoden är abstrakt
- Attributet/metoden är publikt
(We can mark attributes or operations as public, private, or protected by prepending a plus sign
(+), minus sign (-), or hash symbol (#), respectively).
Vad anger en heldragen linje med en ihålig pilspets i ett UML-diagram?
- Aggregation
- Generalisering (arv)
- Implementering av ett interface
- Association
- Generalisering (arv)
(Inheritance)
Vilket av följande symboliserar ett fält (field) i en UML-klass?
- En pil
- En streckad linje
- En attributdeklaration
- Ett metodnamn följt av ett returtyp
- En attributdeklaration
Hur representeras en egenskap (property) i UML?
- Med en asterisk (*)
- Med stereotypen «get» eller «set»
- Med en pil
- Som en separat sektion i diagrammet
- Med stereotypen «get» eller «set»
Hur illustreras en konstruktor i UML-diagram enligt UML-specifikationen?
- Med stereotypen «Create»
- Med en pil mot bas-klassen
- Genom att inkludera returtypen “void”
- Med en streckad linje
- Med stereotypen «Create»
Vad representerar en streckad linje med en ihålig pil i UML?
- En kompositionsrelation
- En aggregeringsrelation
- Implementering av ett interface (realisering)
- En association mellan klasser
- Implementering av ett interface (realisering)
Vilket av följande beskriver komposition i UML-diagram?
- En relation där en klass äger en annan
- En hierarki av ärvda klasser
- En instansmetod
- En abstrakt klass
- En relation där en klass äger en annan
(Has-a relation. In the diagram, the arrow from the Player class to the IWeapon interface is an example of
composition, of a has-a relationship between two types).
Vilket av följande används för att indikera en abstrakt metod i UML?
- Metodnamnet i fetstil
- En streckad linje under metodnamnet
- Kursiv text eller notationen {abstract}
- En asterisk (*) framför metodnamnet
- Kursiv text eller notationen {abstract}
I UML, vad innebär en association mellan två klasser?
- Att de är i en kompositionsrelation
- Att de delar attribut
- Att en klass kan ha en referens till en annan
- Att de implementerar samma interface
- Att en klass kan ha en referens till en annan
What is composition in object-oriented design?
- A method for inheriting properties and behaviors from a superclass
- A way to combine objects to create more complex behaviors
- A process for overriding methods in a subclass
- A technique for creating abstract classes
- A way to combine objects to create more complex behaviors
(Förklaring: Komposition innebär att man kombinerar olika objekt för att skapa komplexa beteenden genom att sätta samman komponenter istället för att ärva från en bas-klass.
Kompositon har följande pil i UML –> “has-a”).
What is inheritance in object-oriented programming?
- A method for including methods and fields from one object in another
- A process to create new classes based on existing ones, forming an “is-a” relationship
- A pattern to separate abstraction from implementation
- A way to create a unique interface for each object
- A process to create new classes based on existing ones, forming an “is-a” relationship
(Förklaring: Arv skapar en hierarki där en klass ärver egenskaper och beteenden från en annan klass, vilket ofta innebär ett “is-a” förhållande, t.ex., en “WildDuck is-a Duck”.
Inheritance har följande pil i UML –I> “is-a).
What is the Strategy Pattern used for?
- To create a single, unchangeable behavior in a class
- To allow an object to choose its behavior dynamically at runtime
- To ensure that an abstraction can vary independently from its implementation
- To simplify class hierarchies by removing unused methods
- To allow an object to choose its behavior dynamically at runtime
(Förklaring: Strategy Pattern gör det möjligt att definiera olika beteenden och att dynamiskt byta dessa, vilket gör det lätt att ändra hur ett objekt beter sig utan att behöva ändra dess klass).
What is the purpose of the Bridge Pattern?
- To allow objects to have interchangeable behaviors at runtime
- To separate abstraction from its implementation, allowing them to vary independently
- To ensure all subclasses of a base class share the same behavior
- To enforce a strict hierarchy between classes
- To separate abstraction from its implementation, allowing them to vary independently
(Förklaring: Bridge Pattern används för att separera abstraktion från implementation, vilket gör att båda kan utvecklas oberoende av varandra. Det är särskilt användbart när man har flera oberoende dimensioner av variation).
Vad är huvudpoängen med komposition över arv?
- Att främja användningen av arv för alla typer av hierarkier
- Att möjliggöra horisontell delning av kod utan hierarki
- Att göra kod mer beroende av specifika implementationer
- Att eliminera alla typer av arv i objektorienterad design
- Att möjliggöra horisontell delning av kod utan hierarki
(Förklaring: Komposition över arv uppmuntrar att dela funktionalitet horisontellt genom att kombinera objekt snarare än att skapa djupa arvshierarkier. Detta gör koden mer flexibel och lätt att förändra utan att påverka hela strukturen).
Vilket av följande mönster är en implementering av principen komposition över arv?
- Decorator Pattern
- Observer Pattern
- Strategy Pattern
- Factory Pattern
- Strategy Pattern
(Förklaring: Strategy Pattern möjliggör att byta ut beteenden dynamiskt, vilket är ett centralt koncept i komposition över arv. Istället för att ärva funktionalitet kan ett objekt “sammansättas” med olika strategier).