Привіт,
У попередньому пості ми розглядали, як технології безперешкодно інтегруються в реальний світ, зокрема їх трансформуючу роль в індустрії продуктів через приклад, який я вивчав, OOP — в реальному житті — під час моєї роботи як Асистент менеджера в магазині два роки тому, коли я був на другому курсі.
Увага, слухачі: важливо мати чітке розуміння концепцій об'єктно-орієнтованого програмування (OOP), оскільки ми глибше зануримося в тему.
Що таке OOP?
Об'єктно-орієнтоване програмування (OOP) — це парадигма програмування, яка організовує код в багаторазові об'єкти. Ці об'єкти представляють реальні сутності та спроектовані так, щоб взаємодіяти між собою для виконання завдань. OOP робить код більш структурованим, легшим для розуміння і простішим для підтримки.
Дозвольте провести вас у подорож OOP…
Розглянемо реальний об'єкт, використовуючи шоколад як продукт в цьому прикладі.
Продукти виставлені на полицях магазину, всі чекають, коли клієнти зроблять покупку. І ось ви додаєте шоколадку до свого кошика.
Це, по суті, те, що ховається за штрих-кодом шоколадки в супермаркеті, в якому ви зараз перебуваєте!
public class Chocolate {
private int id;
private String name;
private int quantity;
// Конструктор
public Chocolate(int id, String name, int quantity) {
this.id = id;
this.name = name;
this.quantity = quantity;
}
// Геттеры і сеттери
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getQuantity() {
return quantity;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
}
Давайте з'ясуємо, хто управляє цим продуктом, і перевіримо, скільки залишилося в запасі?
Ви розумієте, що нічого не потрібно для дому чи для себе, окрім шоколадки. Ви підходите до каси, і вам вітають: «Добрий день, пані/пане!» 😊
- Ось це справжня увага до клієнтів!
Після того, як ваш продукт буде відскановано штрих-кодом, відбудеться одна з операцій, яку я розгляну нижче, де система перевіряє кількість шоколадок. Оскільки ви придбали одну, запас магазину зменшується на одну, зменшуючи кількість на 1.
public interface ChocolateService {
void checkChocolateStock(Chocolate chocolate);
}
public class ChocolateManagement implements chocolateService {
@Override
public void checkChocolateStock(Chocolate chocolate) {
while (chocolate.getQuantity() < 5) {
System.out.println("Chocolate ID: " + chocolate.getId() + " is low on stock. Notifying storehouse...");
chocolate.setQuantity(chocolate.getQuantity() + 1); // Збільшуємо запас для симуляції поповнення
}
System.out.println("Chocolate ID: " + chocolate.getId() + " now has sufficient stock.");
}
}
- Причина використання while loop: щоб повторно перевіряти і сповіщати склад до тих пір, поки запас не буде поповнено (або оновлено).
- Причина, чому не використовується if умова: Сповіщення складу тільки один раз, якщо кількість менша за 5.
Давайте подивимося, що станеться, коли продукт, який ви купили, більше не буде в наявності?
У попередніх блоках коду ми побачили, що система сповіщає склад, коли кількість продукту падає нижче 5.
Однак це повідомлення надсилається через контролер, який комунікує із системою зовнішньо.
import java.util.ArrayList;
import java.util.List;
public class ChocolateController {
private ChocolateService chocolateService;
public ChocolateController() {
this.chocolateService = new chocolateManagement();
}
public void manageChocolates() {
List chocolates = new ArrayList<>();
chocolates.add(new chocolate(1, "Snickers", 4)); //Ось кількість шоколадки, яку ви взяли, менша за 5
chocolates.add(new chocolate(2, "Twix", 10));
chocolates.add(new chocolate(3, "Mars", 23));
chocolates.add(new chocolate(4, "m&m", 12));
for (Chocolate chocolate : chocolates) {
chocolateService.checkchocolateStock(chocolate);
}
}
public static void main(String[] args) {
chocolateController controller = new chocolateController();
controller.manageChocolates();
}
}
Повний вивід системи виглядатиме ось так:
Chocolate ID: 1 is low on stock. Notifying storehouse...
Chocolate ID: 1 is low on stock. Notifying storehouse...
Chocolate ID: 1 is low on stock. Notifying storehouse...
Chocolate ID: 2 is now has sufficient stock.
Chocolate ID: 3 is now has sufficient stock.
Chocolate ID: 4 is now has sufficient stock.
Ви стаєте свідком комунікації між комп'ютером і людиною, і бачите, як технології допомагають в нашому житті, спрощуючи процеси.
Таким чином, я провів вас через подорож шоколадом, показавши місце, де можна придбати шоколад — чи то на ринку, в магазині, супермаркеті чи деінде. Я продемонстрував, як склад і ринок можуть взаємодіяти для вирішення проблеми з низьким запасом через контролер, використовуючи принципи об'єктно-орієнтованого програмування (OOP). 🙂
Наостанок, ось фото моєї команди, з якою я мав задоволення працювати, коли керував супермаркетом два роки тому.
Зліва направо: Я, Oğuzhan Cihanker (Право), Yusuf Faik Can (Будівельна інженерія)
Сподіваюся, ви знайшли щось корисне в цій статті. Мені було приємно поділитися моїм досвідом через реальний приклад. Сподіваюся на нові зустрічі з вами в майбутніх статтях!
Перекладено з: OOP as Sweet as a Chocolate Bar