Реализовать в JAVA класс Market и все методы, которые он обязан реализовывать.
Методы из интерфейса QueueBehaviour, имитируют работу очереди, MarketBehaviour – помещает и удаляет человека из очереди, метод Update – обновляет состояние магазина (принимает и отдаёт заказы).
java
interface QueueBehaviour {
void enqueue(Person person);
Person dequeue();
}
interface MarketBehaviour {
void enterMarket(Person person);
void leaveMarket(Person person);
}
interface Update {
void update();
}
Затем создадим класс Person, который будет представлять человека:
java
class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
Теперь реализуем класс Market, который будет реализовывать все указанные методы:
java
import java.util.LinkedList;
import java.util.Queue;
class Market implements QueueBehaviour, MarketBehaviour, Update {
private Queue<Person> queue = new LinkedList<>();
private int orderCount = 0;
@Override
public void update() {
System.out.println("Updating market state...");
// Здесь можно добавить логику обновления состояния магазина
}
@Override
public void enterMarket(Person person) {
System.out.println(person.getName() + " entered the market.");
}
@Override
public void leaveMarket(Person person) {
System.out.println(person.getName() + " left the market.");
}
@Override
public void enqueue(Person person) {
queue.add(person);
System.out.println(person.getName() + " joined the queue.");
}
@Override
public Person dequeue() {
if (!queue.isEmpty()) {
Person person = queue.poll();
System.out.println(person.getName() + " is served.");
return person;
} else {
System.out.println("Queue is empty.");
return null;
}
}
public void placeOrder(Person person) {
orderCount++;
System.out.println(person.getName() + " placed an order. Order number: " + orderCount);
}
public static void main(String[] args) {
Market market = new Market();
Person person1 = new Person("Alice");
Person person2 = new Person("Bob");
market.enterMarket(person1);
market.enqueue(person1);
market.update();
market.enterMarket(person2);
market.enqueue(person2);
market.placeOrder(person1);
market.dequeue();
market.dequeue();
market.leaveMarket(person1);
market.leaveMarket(person2);
}
}
Этот код создает класс Market, который реализует все указанные интерфейсы. Метод main создает рынок, приглашает людей, добавляет их в очередь, обновляет состояние рынка, размещает заказы и обслуживает людей в порядке очереди. Каждый шаг сопровождается выводом соответствующих сообщений.
Таким образом, класс Market представляет собой простую имитацию работы магазина с использованием очереди для управления людьми.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет