How duskazievrizabek-art/assignment-2 works
This console application combines two runtime workflows: selecting a delivery mode to create a transport and perform a delivery, and selecting a platform to create and render matching UI components. Main validates input and chooses implementations; DeliveryApplication invokes the selected factories and logistics service. The README documents both Windows/macOS UI families and road/sea delivery. Sampled source supports the main wiring; the graph omits unshown implementation details beyond those documented capabilities.
Main entry points: Main.java Main · DeliveryApplication.java Delivery application · Logistics.java Logistics planner · WindowsFactory.java Windows factory
Components 18
Runtime orchestration
- Main
src/Main.java - Delivery application
src/client/DeliveryApplication.java
Delivery creation
- Logistics planner
src/transport/Logistics.java - Road logistics
src/transport/RoadLogistics.java - Sea logistics
src/transport/SeaLogistics.java - Transport contract
src/transport/Transport.java - Truck
src/transport/Truck.java - Ship
src/transport/Ship.java
Platform UI
- GUI factory contract
src/ui/GUIFactory.java - Windows factory
src/ui/WindowsFactory.java - macOS factory
src/ui/MacOSFactory.java - Button contract
src/ui/Button.java - Checkbox contract
src/ui/Checkbox.java - Windows button
src/ui/WindowsButton.java - Windows checkbox
src/ui/WindowsCheckbox.java - macOS button
src/ui/MacOSButton.java - macOS checkbox
src/ui/MacOSCheckbox.java
Other components
- Console user
Connections 27
- Console user → Main: enters choices
- Main → Road logistics: selects road
- Main → Sea logistics: selects sea
- Main → Windows factory: selects Windows
- Main → macOS factory: selects macOS
- Main → Delivery application: constructs and runs
- Delivery application → GUI factory contract: creates UI components
- Delivery application → Logistics planner: plans delivery
- GUI factory contract → Windows factory: dispatches to
- GUI factory contract → macOS factory: dispatches to
- Windows factory → Windows button: creates
- Windows factory → Windows checkbox: creates
- macOS factory → macOS button: creates
- macOS factory → macOS checkbox: creates
- Delivery application → Button contract: paints
- Delivery application → Checkbox contract: paints
- Logistics planner → Transport contract: creates and delivers
- Logistics planner → Road logistics: dispatches create
- Logistics planner → Sea logistics: dispatches create
- Road logistics → Truck: creates
- Sea logistics → Ship: creates
- Truck → Transport contract: implements
- Ship → Transport contract: implements
- Windows button → Button contract: implements
- macOS button → Button contract: implements
- Windows checkbox → Checkbox contract: implements
- macOS checkbox → Checkbox contract: implements