PRACTICAL USAGE of ITERATOR PATTERN in JAVA
Requirement
There is a restaurant called "big mama restaurant" which providesItalian meals and Chinese meals.They provide Italian and Chinese meals in the separate menu list. Not in the same Menu.
They have only five Chinese meals.
A meal has details such as type (vegetarian or non-vegetarian), name, description, and price.
There is a waiter in the restaurant who reads the Italian and Chinese food menu when required.
The waiter reads only one Italian or Chinese menu at once as required.
Pre-required knowledge of,
Objects, Arrays, and Arraylist.
Java class, interface, and inheritance.
Encapsulation.
Abstract methods and overriding.
Basic loop.
Java class, interface, and inheritance.
Encapsulation.
Abstract methods and overriding.
Basic loop.
And,
Make Chinese menu as an Array.
Make Italian menu as an Arraylist.
Users can add meals to each menu list.
Give a solution to this waiter to read each menu.
Create a class called meal which has fields called meal type, meal name, description, price.
Encapsulate these fields. Assign all received fields in the constructor and also getter (get fields) methods.
Create a class called Chinese menu, Create an instance array called Chinese menu.
Create a method called add meal in Chinese menu class that can add meal objects to the Chinese menu array.
Create a class called Italian menu, Create instance ArrayList called Italian menu.
Create a method called add meal in the Italian menu class that can add meal objects to the Italian menu ArrayList.
2) Read the menu
This part is a bit hard to think of for beginners, follow the sample project given and try to understand with the steps below.
Make Italian menu as an Arraylist.
Users can add meals to each menu list.
Give a solution to this waiter to read each menu.
Major steps before that need to think before and while,
1) Create meals and a menuCreate a class called meal which has fields called meal type, meal name, description, price.
Encapsulate these fields. Assign all received fields in the constructor and also getter (get fields) methods.
Create a class called Chinese menu, Create an instance array called Chinese menu.
Create a method called add meal in Chinese menu class that can add meal objects to the Chinese menu array.
Create a class called Italian menu, Create instance ArrayList called Italian menu.
Create a method called add meal in the Italian menu class that can add meal objects to the Italian menu ArrayList.
2) Read the menu
This part is a bit hard to think of for beginners, follow the sample project given and try to understand with the steps below.
Create an interface called an iterator.
Create a public abstract method called HasNext with a boolean return type.
Create a public abstract method called Next with an Object return type.
Create a class called Chinese menu iterator and implement interface iterator.
Override abstract methods.
Create an instance array called the Chinese menu and assign the received array in the constructor.
Create an instance variable (int) for the position.
Create a class called Italian menu iterator and implement interface iterator.
Override abstract methods.
Create an instance ArrayList called the Italian menu and assign the received ArrayList in the constructor.
Create an instance variable (int) for the position.
In the override d HasNext method in both classes,
Return true if the Array/ArrayList has another element from the current element.
Return false if the Array/Arraylist does not has another element from the current element.
At the last element, this must return false.
In the override d Next method in both classes,
Return next element object (meal).
In the Chinese menu class created before (1),
Create a method called get meal that returns iterator parent class object.
Create a new object of the Chinese menu iterator and pass the array Chinese menu.
Return the object Chinese menu iterator.
In the Italian menu class created before (1),
Create a method called to get a meal that returns iterator parent class object.
Create a new object of the Italian menu iterator and pass the ArrayList Italian menu.
Return the object Italian menu iterator.
Create a class called the waiter.
Create a method called read menu with a parameter of the iterator parent class.
read each meal and return details while iterator (Chinese menu array or Italian menu ArrayList) has next.
print details.
3) Run
Create a demo class and create the main method.
Create a new Chinese menu object and add meals.
Create a new Italian menu object and add meals.
Create a new waiter object.
Read (Chinese) menu by passing the meal of Chinese menu.
Read (Italian) menu by passing the meal of Italian menu.
Run the main method and That will print all meals and details.
That's all !!!
Make your own project and practice. Memorize the main steps and keep thinking while developing.
Follow the sample project given. The project is made using an IDE called Netbeans.
Find the src folder and copy files/ java classes if you use another IDE.
This pattern is fast, efficient, and clear. You can apply this pattern for any requirements like this.
Hope you enjoyed it, learned something new, and helped for better work.
Thank you for reading. See you with another practical.
Download demo project here
Comments
Post a Comment