package com.company; public class Main { public static void main(String[] args) throws InterruptedException { RepositoryObservable repository = new RepositoryObservable(); ManufacturerObserver manufacturer = new ManufacturerObserver(repository); ManufacturerObserver manufacturer2 = new ManufacturerObserver(repository); ConsumerObserver consumer = new ConsumerObserver(repository); repository.addManufacturer(manufacturer); repository.addManufacturer(manufacturer2); repository.addConsumer(consumer); repository.addPropertyChangeListener(manufacturer); repository.addPropertyChangeListener(manufacturer2); repository.addPropertyChangeListener(consumer); while(true){ if(repository.hasSpace()) if(repository.hasProducts()) Thread.sleep(1000); } } }