Design Patterns : Elements of Reusable Object-Oriented Software


Design Patterns: Elements of Reusable Object-Oriented Software



Download 4,06 Mb.
Pdf ko'rish
bet75/288
Sana07.04.2022
Hajmi4,06 Mb.
#535140
1   ...   71   72   73   74   75   76   77   78   ...   288
Bog'liq
GOF Design Patterns
Копасов Игорь (1), Т Е Л Е Ф О Н О Г Р А М М А ЗООМ, 20201546 п.80 использ., Oliy matematika, презентация индустрия мутакил иши, 3000 most common words in English, Sun'iy intellekt, 1638511850 AE, 1638511850 AE, Hisob-raqan (Patent boji), O'RQ-600 23-MODDA, Talabaning haftalik hisoboti namunasi , iikinchi hafta amaliyoti., Таҳлил тест
Design Patterns: Elements of Reusable Object-Oriented Software 
95 
The classes Room, Door, and Walldefine the components of the maze used in all 
our examples. We defineonly the parts of these classes that are important for 
creating amaze. We'll ignore players, operations for displaying and 
wanderingaround in a maze, and other important functionality that isn'trelevant 
to building the maze. 
The following diagram shows the relationships between these classes: 
Each room has four sides. We use an enumeration Direction inC++ implementations 
to specify the north, south, east, and west sides ofa room: 
enum Direction {North, South, East, West}; 
The Smalltalk implementations use corresponding symbols to representthese 
directions. 
The class MapSite is the common abstract class for all thecomponents of a maze. 
To simplify the example, MapSite definesonly one operation, Enter. Its meaning 
depends on what you'reentering. If you enter a room, then your location changes. 
If you try toenter a door, then one of two things happen: If the door is open, 
you gointo the next room. If the door is closed, then you hurt your nose. 
class MapSite { 
public: 
virtual void Enter() = 0; 
}; 
Enter provides a simple basis for more sophisticated gameoperations. For example, 
if you are in a room and say "Go East," thegame can simply determine which MapSite 
is immediately to theeast and then call Enter on it. The subclass-specificEnter 
operation will figure out whether your location changedor your nose got hurt. 
In a real game, Enter could take theplayer object that's moving about as an argument. 


Design Patterns: Elements of Reusable Object-Oriented Software 
96 
Room is the concrete subclass of MapSite thatdefines the key relationships between 
components in the maze. Itmaintains references to other MapSite objects and stores 
aroom number. The number will identify rooms in the maze. 
class Room : public MapSite { 
public: 
Room(int roomNo); 
MapSite* GetSide(Direction) const; 
void SetSide(Direction, MapSite*); 
virtual void Enter(); 
private: 
MapSite* _sides[4]; 
int _roomNumber; 
}; 
The following classes represent the wall or door that occurs on eachside of a 
room. 
class Wall : public MapSite { 
public: 
Wall(); 
virtual void Enter(); 
}; 
class Door : public MapSite { 
public: 
Door(Room* = 0, Room* = 0); 
virtual void Enter(); 
Room* OtherSideFrom(Room*); 
private: 
Room* _room1; 
Room* _room2; 
bool _isOpen; 
}; 
We need to know about more than just the parts of a maze. We'll alsodefine a Maze 
class to represent a collection of rooms.Maze can also find a particular room 
given a room numberusing its RoomNo operation. 



Download 4,06 Mb.

Do'stlaringiz bilan baham:
1   ...   71   72   73   74   75   76   77   78   ...   288




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2022
ma'muriyatiga murojaat qiling

    Bosh sahifa
davlat universiteti
ta’lim vazirligi
axborot texnologiyalari
maxsus ta’lim
zbekiston respublikasi
guruh talabasi
O’zbekiston respublikasi
nomidagi toshkent
o’rta maxsus
davlat pedagogika
texnologiyalari universiteti
toshkent axborot
xorazmiy nomidagi
rivojlantirish vazirligi
pedagogika instituti
Ўзбекистон республикаси
tashkil etish
haqida tushuncha
таълим вазирлиги
vazirligi muhammad
O'zbekiston respublikasi
toshkent davlat
махсус таълим
respublikasi axborot
kommunikatsiyalarini rivojlantirish
vazirligi toshkent
saqlash vazirligi
fanidan tayyorlagan
bilan ishlash
Toshkent davlat
sog'liqni saqlash
uzbekistan coronavirus
respublikasi sog'liqni
coronavirus covid
koronavirus covid
vazirligi koronavirus
risida sertifikat
covid vaccination
qarshi emlanganlik
sertifikat ministry
vaccination certificate
Ishdan maqsad
fanidan mustaqil
matematika fakulteti
o’rta ta’lim
haqida umumiy
fanlar fakulteti
pedagogika universiteti
ishlab chiqarish
moliya instituti
fanining predmeti