public static ApplicationService getInstance() {
   if (instance == null) {
     instance = new ApplicationService();
     instance.initDefaultProperties();
   }
   return instance;
 }
  /** Добавляет новую покупку. Обновляет данные о частоте использования типов. */
  public void addPayObject(PayObject payObject) {
    if (payObjects.size() != 0 && frequencyUsePayType.size() == 0) updateAllFrequencyUse();

    payObjects.add(payObject);
    updateFrequencyUse(payObject);

    ApplicationService.writeData();
    MonitoringMoney.mainFrame.updateData();
  }
 /**
  * Возвращает покупки с учётом фильтров. Если с учётом фильтров покупок нет, возвращает все
  * покупки.
  *
  * @return все покупки по выбранным фильтрам в основном окне <code>MainFrame</code>
  */
 static List<PayObject> getPayObjects() {
   List<PayObject> payObjects = MonitoringMoney.mainFrame.getPayObjectWithCurrentFilters();
   if (payObjects.isEmpty()) {
     payObjects =
         ApplicationService.getInstance()
             .getPayObjectsWithFilters(null, null, null, null, null, null, null, null);
   }
   viewPayObjects = payObjects;
   return payObjects;
 }
 /** Прочитывает файл, который хранит долговременную информацию */
 public static void readData() throws IOException, ClassNotFoundException {
   ObjectInputStream ois =
       new ObjectInputStream(new FileInputStream(ApplicationProperties.BUY_FILE));
   instance = (ApplicationService) ois.readObject();
   if (instance.images == null) instance.images = new HashMap<>();
 }