Python: получить все месяцы в диапазоне?

Шаблон проектирования Builder может помочь. Рассмотрим следующий пример

public class StudentBuilder
{
    private String _name;
    private int _age = 14;      // this has a default
    private String _motto = ""; // most students don't have one

    public StudentBuilder() { }

    public Student buildStudent()
    {
        return new Student(_name, _age, _motto);
    }

    public StudentBuilder name(String _name)
    {
        this._name = _name;
        return this;
    }

    public StudentBuilder age(int _age)
    {
        this._age = _age;
        return this;
    }

    public StudentBuilder motto(String _motto)
    {
        this._motto = _motto;
        return this;
    }
}

. Это позволяет нам писать код, например

Student s1 = new StudentBuilder().name("Eli").buildStudent();
Student s2 = new StudentBuilder()
                 .name("Spicoli")
                 .age(16)
                 .motto("Aloha, Mr Hand")
                 .buildStudent();

. Если оставить обязательное поле (предположительно, имя требуется), то мы можем иметь конструктор Стьюдента выбросить исключение. И это позволяет нам иметь необязательные / необязательные аргументы без необходимости отслеживать какой-либо порядок аргументов, поскольку любой порядок этих вызовов будет работать одинаково хорошо.

13
задан Mauro Baraldi 26 February 2016 в 22:07
поделиться