update README.md
This commit is contained in:
parent
3c92334ba0
commit
1516215382
128
README.md
128
README.md
@ -49,6 +49,134 @@ graph TD;
|
||||
|
||||
За историю отвечает класс *StoryTeller*. Он меняет состояние персонажей и отображает их состояние.
|
||||
|
||||
## UML диаграмма
|
||||
```mermaid
|
||||
classDiagram
|
||||
direction BT
|
||||
class Character {
|
||||
# Feels feel
|
||||
# Item itemInHand
|
||||
- Gender gender
|
||||
- Entity position
|
||||
- String currentState
|
||||
+ setFeel(Feels) void
|
||||
+ getGender() String
|
||||
+ moveTo(Entity) void
|
||||
+ getState() String
|
||||
+ getPosition() Entity
|
||||
+ getItemInHand() Item
|
||||
+ grab(Item) void
|
||||
# setState(String) void
|
||||
# setPosition(Entity) void
|
||||
- validateFields() void
|
||||
- getValueForField(Object, Field) String?
|
||||
- setValueForField(Object, Field, String) void
|
||||
}
|
||||
class Container {
|
||||
- Item innerItem
|
||||
+ getInnerItem() Item
|
||||
}
|
||||
class Door {
|
||||
- boolean isOpen
|
||||
+ closeDoor() void
|
||||
+ openDoor() void
|
||||
}
|
||||
class Entity {
|
||||
# String name
|
||||
+ getName() String
|
||||
}
|
||||
class ExitFuelException
|
||||
class Feels {
|
||||
<<enumeration>>
|
||||
+ SAD
|
||||
+ SCARY
|
||||
+ RAGE
|
||||
+ DEAD_INSIDE
|
||||
+ ANGRY
|
||||
+ NORMAL
|
||||
- String feel
|
||||
+ valueOf(String) Feels
|
||||
+ toString() String
|
||||
+ values() Feels[]
|
||||
}
|
||||
class FrenBok {
|
||||
- IGrabbable characterInHand
|
||||
+ pushCharacterBehindItem(Item) void
|
||||
+ moveTo(Entity) void
|
||||
+ grab(Item) void
|
||||
+ grabCharacter(IGrabbable) void
|
||||
}
|
||||
class ICanTake {
|
||||
<<Interface>>
|
||||
+ grab(Item) void
|
||||
}
|
||||
class IFeelable {
|
||||
<<Interface>>
|
||||
+ setFeel(Feels) void
|
||||
}
|
||||
class IFlyable {
|
||||
<<Interface>>
|
||||
+ flyTo(Entity) void
|
||||
}
|
||||
class IGrabbable {
|
||||
<<Interface>>
|
||||
+ getGrabbablePart() String
|
||||
}
|
||||
class IMovable {
|
||||
<<Interface>>
|
||||
+ moveTo(Entity) void
|
||||
}
|
||||
class Item {
|
||||
- Character owner
|
||||
+ setOwner(Character) void
|
||||
+ equals(Object) boolean
|
||||
+ getOwner() Character
|
||||
}
|
||||
class Karlson {
|
||||
- Engine engine
|
||||
+ grab(Item) void
|
||||
+ flyTo(Entity) void
|
||||
+ moveTo(Entity) void
|
||||
+ grabFrom(Container) void
|
||||
+ stomp() void
|
||||
+ getGrabbablePart() String
|
||||
}
|
||||
class Main {
|
||||
+ main(String[]) void
|
||||
}
|
||||
class Malysh {
|
||||
- Mouth mouth
|
||||
+ moveTo(Entity) void
|
||||
+ speak(String) void
|
||||
+ grab(Item) void
|
||||
}
|
||||
class OwnershipException
|
||||
class StoryTeller {
|
||||
- FrenBok frenBok
|
||||
- Door door
|
||||
- Karlson karlson
|
||||
- Item meatball
|
||||
- Container fryingPan
|
||||
- Item kitchenHob
|
||||
- Malysh malysh
|
||||
+ play() void
|
||||
}
|
||||
|
||||
Character --> Entity
|
||||
Character ..> ICanTake
|
||||
Character ..> IFeelable
|
||||
Character ..> IMovable
|
||||
Container --> Item
|
||||
Door --> Item
|
||||
FrenBok --> Character
|
||||
IGrabbable --> IMovable
|
||||
Item --> Entity
|
||||
Karlson --> Character
|
||||
Karlson ..> IFlyable
|
||||
Karlson ..> IGrabbable
|
||||
Malysh --> Character
|
||||
```
|
||||
|
||||
## Особенности 4 лабы
|
||||
Есть два исключения: `OwnershipException` и `ExitFuelException`. `OwnershipException` - исключение при взятии чужой вещи.
|
||||
`ExitFuelException` возникает, когда у Карлсона кончается топливо.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user