C++ Имя используемого "паттерна"

Тема в разделе "LANGS.C", создана пользователем shchetinin, 3 сен 2011.

  1. shchetinin

    shchetinin Member

    Публикаций:
    0
    Регистрация:
    27 май 2011
    Сообщения:
    715
    Паттерн взят в ковычки не зря, так как это не паттерн, но все же шабланная вещь ...

    Есть логика кода
    Код (Text):
    1. CaptureResource();
    2.  //
    3.  // Не какая логика с потенциалом выкинуть исключения.
    4.  //
    5. ReleaseResource();
    На Си под Винь я бы писал так

    Код (Text):
    1. __try {
    2. CaptureResource();
    3.  //
    4.  // Не какая логика с потенциалом выкинуть исключения.
    5.  //
    6. }
    7. __finally
    8. {
    9.    ReleaseResource();
    10. }
    На ЦПП можно так

    Код (Text):
    1. try {
    2. CaptureResource();
    3.  //
    4.  // Не какая логика с потенциалом выкинуть исключения.
    5.  //
    6. }
    7. catch(...)
    8. {
    9.    ReleaseResource();
    10.    throw;
    11. }
    12. ReleaseResource();
    Это через ж***.

    Поэтому идея обернуть в класс

    Код (Text):
    1. do {
    2. ClassAutoCaptureResource captureObject();
    3.  //
    4.  // Не какая логика с потенциалом выкинуть исключения.
    5.  //
    6. } while(false);
    Как называет класс такого рода ? обобщенно разумеется...
    ( Часто используется для Мьютексов или критических секциях ну и прочей лабуде )
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    RAII скорее всего.
     
  3. shchetinin

    shchetinin Member

    Публикаций:
    0
    Регистрация:
    27 май 2011
    Сообщения:
    715
    походу да , спасибо.