Рефакторинг пунктов охраны

Обычно классы параллельного программирования объясняют тупик примерами. Я думаю, что проблема Обедающих Философов будет хорошим примером для использования. Вы можете разработать этот пример на Java и объяснить возникновение тупика, когда два философа держат левую вилку и ждут правой вилки. (или наоборот).

Я изучил много концепций параллельного программирования, используя эти примеры, реализованные на Java.

29
задан Community 23 May 2017 в 12:34
поделиться

3 ответа

Многие проекты, которые я видел, используют статический класс Guard .

public static class Guard {
    public static void ArgumentIsNotNull(object value, string argument) {
        if (value == null)
            throw new ArgumentNullException(argument);
    }
}

По моему мнению, это делает код намного чище.

Guard.ArgumentIsNotNull(arg1, "arg1");
49
ответ дан 28 November 2019 в 01:16
поделиться

Если вы не хотите идти по пути кодовых контрактов, один из способов упростить его - удалить фигурные скобки:

public void SomeMethod<T>(string var1, IEnumerable<T> items, int count)
{
    if (string.IsNullOrEmpty(var1))
        throw new ArgumentNullException("var1");

    if (items == null)
        throw new ArgumentNullException("items");

    if (count < 1)
        throw new ArgumentOutOfRangeException("count");

    ... etc ....
}

Помимо этого, есть несколько способов моделирования Контракты кода, если вы возражаете, что .Net 4.0 еще не прайм-тайм:

http://geekswithblogs.net/Podwysocki/archive/2008/01/22/118770.aspx

4
ответ дан 28 November 2019 в 01:16
поделиться

Вы можете подумать о рефакторинге, чтобы ввести пустой объект .

4
ответ дан 28 November 2019 в 01:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: