1 Востаннє редагувалося bohdan (12.05.2015 13:12:25)

Тема: Що хочуть побачити інтервювери?

Знайшов в пробних завданнях від SoftServ'у таке завдання:

Consider classes Customer and Rental, which represent customer and information about rent.

class Customer
{
    private String name;

    // Other fields, constructors, get, set, etc.
    //
    public Customer(String name)
    {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    private double amountFor(Rental rental) {
        double result;
        // Another code.
        result = rental.getDays() * rental.getBasePrice();
        if (rental.getKind() == 1)
        {
            result = result * 1.5;
        }
        if (rental.getKind() == 2)
        {
            result = result * 2;
        }
        if (rental.getKind() == 3)
        {
            result = result * 2.5;
        }
        if (rental.getDays() > 7)
        {
            result = result * 3;
        }
        // Other calculation.
        return result;
    }
    // Other methods.
}

class Rental
{
    private int kind;
    private int days;

    // Other fields, constructors, get, set, etc.
    //
    public Rental(int kind, int days)
    {
        this.kind = kind;
        this.days = days;
    }

    public int getKind() {
        return kind;
    }

    public void setKind(int kind) {
        this.kind = kind;
    }

    public int getDays() {
        return days;
    }

    public void setDays(int days) {
        this.days = days;
    }

    public double getBasePrice() {
        // Calculation of Price.
        // . . .
    }
    // Other methods.
}

Move method amountFor(...)into class Rental. Give explanation of this moving. Propose the solution for improving code quality.

Наскільки я розумію, то тут потрібно використати рефлексію? Чи я шось пропустив?

2

Re: Що хочуть побачити інтервювери?

Ви щось пропустили. Мабуть, питання.

Подякували: Master_Sergius1

3

Re: Що хочуть побачити інтервювери?

Update

Вибачте, забув копірнути питання)

4

Re: Що хочуть побачити інтервювери?

Перенесіть метод в інший клас. Поясніть чому перенесли. Зробіть код кращим (switch замість if)

5

Re: Що хочуть побачити інтервювери?

Мабуть, таки пропустили. Просто перенесіть цю функцію в інший клас і приберіть параметр. Ну і switch-case чи навіть додатковий клас для KindOfRental.

6

Re: Що хочуть побачити інтервювери?

Питання було: "що хочуть побачити інтерв'юери". Я б припустив, що вони хочуть побачити, чи претендент бачить, чому так не можна будувати, і він у змозі побудувати краще, чи усі його зусилля закінчилися намаганнями зрозуміти, що код означає. Тобто перевірити Ваш рівень. Досвідченому спеціалісну такий код впадає в очі. Прийде час, і Ви не будете задавати питання, зустрівши такий код.