src | ||
.gitignore | ||
itmo-prog-lab-4.iml | ||
README.md |
itmo-prog-lab-4
Class Description
Package: characters
- Character.java: An abstract class representing a character in the story. Implements
Listenable
andConversable
interfaces.- Connections: Inherits from
StoryElement
inmodel
package. Used byChild
andTraveler
.
- Connections: Inherits from
- Child.java: Represents child characters in the story, capable of thinking and conversing about story elements.
- Connections: Inherits from
Character
.
- Connections: Inherits from
- Traveler.java: Represents traveler characters in the story, who can tell stories about their adventures.
- Connections: Inherits from
Character
. Interacts withAdventure
instory
package.
- Connections: Inherits from
- Znayka.java: A specific implementation of
Traveler
, representing the character Znayka.- Connections: Inherits from
Traveler
.
- Connections: Inherits from
Package: enums
- CharacterType.java: Defines character types (TRAVELER, CHILD).
- AdventureType.java: Defines types of adventures (FAMOUS, UNKNOWN).
- LifeType.java: Defines types of life (NOT_AS_USUAL, AS_USUAL).
Package: exceptions
- StoryEventException.java: Custom exception to handle specific story-related errors.
- StoryLogicException.java: Custom runtime exception for handling logic errors in the story.
Package: interfaces
- Interactable.java: Interface for story elements that can interact.
- Conversable.java: Interface for characters that can converse.
- Listenable.java: Interface for characters that can listen.
Package: model
- StoryElement.java: An abstract class representing a story element with a description and metadata.
- Connections: Parent class for
Location
.
- Connections: Parent class for
- City.java: Represents a city in the story, managing travelers, children, and houses.
- Connections: Inherits from
Location
. AggregatesTraveler
,Child
, andHouse
fromcharacters
package.
- Connections: Inherits from
- House.java: Represents a house in the city, hosting residents and stories.
- Connections: Inherits from
Location
. ContainsCharacter
fromcharacters
package.
- Connections: Inherits from
- Location.java: An abstract class representing a location in the story.
- Connections: Parent class for
City
andHouse
.
- Connections: Parent class for
Package: story
- StoryEvent.java: Represents an event in the story.
- Connections: Used in
City
frommodel
package.
- Connections: Used in
- StoryContext.java: Provides context for the story elements.
- Connections: Used in
Adventure
andHouse
frommodel
package.
- Connections: Used in
- Adventure.java: Represents an adventure in the story, involving travelers and locations.
- Connections: Uses
Traveler
fromcharacters
package,City
andHouse
frommodel
package.
- Connections: Uses
Main Class
- StoryTeller.java: Main class orchestrating the storytelling process. Initializes the story's setting, characters, and events.
- Connections: Uses instances of
City
,Traveler
,House
,Child
,Adventure
from the respective packages, and handles exceptions.
- Connections: Uses instances of
Query
На этом знаменитое путешествие Знайки и его товарищей окончилось.
Жизнь в Цветочном городе потекла по-старому... хотя нет, нельзя сказать, чтобы совсем по-старому.
С тех пор как наши отважные путешественники вернулись домой, в городе только и говорили о них.
Все жители, и малыши и малышки, приходили по вечерам к домику Знайки и слушали рассказы путешественников об их жизни в Зеленом городе.
Output
На этом знаменитое путешествие Знайка закончилось.
Жители Цветочный город собрались вместе, чтобы отпраздновать возвращение путешественников.
Путешественники столкнулись с проблемой
Путешественники вспомнили о путешествие в Зеленый город
Жизнь в Цветочный город потекла по-старому... хотя нет, нельзя сказать, чтобы совсем по-старому.
С тех пор как наши отважные путешественники Знайка вернулись домой, в городе только и говорили о них.
Жители собираются в Дом Знайки чтобы рассказать истории
Все жители слушают историю о путешествии в путешествие в Зеленый город в Цветочный город
И вот, когда все собрались в доме Знайка, Знайка рассказал историю о том, как он путешествие в Зеленый город в Цветочный город
Малыш слушает: Малыш слушает историю о путешествие в Зеленый город и спрашивает вопросы о путешествие в Зеленый город
Малышка слушает: Малышка слушает историю о путешествие в Зеленый город и спрашивает вопросы о путешествие в Зеленый город
Знайка рассказывает: Знайка умно рассказывает историю о путешествие в Зеленый город
и думает: Немного я знаю о городах, но история о путешествие в Зеленый город мне очень понравилась
Истории захватывали дух, и каждый вечер собирались всё больше жителей, чтобы слушать новые приключения.
UML Diagram
Вывод
В ходе выполнения данной лабораторной работы я научился работать с интерфейсами, абстрактными классами, исключениями, локальными классами, анонимными классами.