Functional:
Non-functional:
Warehouse, Order, PartnerOrder, CustomerOrder, Item, StorageLocations
StorageManager, ArrangementStrategy, FrequencyArrangementStrategy
Warehouse has a StorageManager
StorageManager has a ArrangementStrategy
Order has a StorageManager
Order has Items
FrequencyArrangementStrategy is an ArrangementStrategy
PartnerOrder is an Order
CustomerOrder is an Order
FrequencyArrangementStrategy has two hash maps.
Map
Map
add(item, count) and remove(item, count) methods update the above two maps
FrequencyArrangementStrategy is an ArrangementStrategy
PartnerOrder is an Order
CustomerOrder is an Order
Strategy pattern to sort StorageLocations
Attributes: For each class, define the attributes (data) it will hold...
Methods: Define the methods (functions) that operate on the attributes. Ensure they align with the object's responsibilities and adhere to the principle of encapsulation.
public class Car { ... } // ExampleCheck and explain whether your design adheres to solid principles (Ask interviewer what SOLID principle is if you can not recall it.)...
The ordering of storage locations mechanism could be easily changed
Try creating a class, flow, state and/or sequence diagram using the diagramming tool. Mermaid flow diagrams can be used to represent system use cases. You can ask the interviewer bot to create a starter diagram if unfamiliar with the tool. Briefly explain your diagrams if necessary...
Critically examine your design for any flaws or areas for future improvement...