2016-08-18 2 views
-1

Предположим, у меня есть класс с именем Square, что его конструктор имеет два параметра: position и size, бывший приняв Point тип, а последний Size типа.Избегайте создания слишком много пользовательских объектов

class Square { 
    constructor (position, size) { 
     this.position = position; 
     this.size = size; 
    } 
} 

Каждый раз, когда я называю Square конструктор, мне нужно создать два объекта только для передачи их в качестве аргументов?

let mySquare = new Square(new Point(100, 100), new Size(200, 200)); 

Этот подход плохо работает? Что я могу сделать, чтобы не создавать слишком много объектов, не жертвуя ясностью кода?

Я не хочу заменять эти пользовательские типы на Square(x, y, width, height).

+1

Если 'Square (x, y, with, height)' не вариант, что вы ожидаете получить для ответа? Поскольку у нас мало информации о предыстории, мы вряд ли можем сказать вам что-то иное, кроме: _ «Производительность должна быть хорошей». _ – Cerbrus

+1

@Cerbrus, тогда вы должны написать ответ, говоря, что ничего не может быть сделано. Не каждый вопрос может иметь ответ, который всегда нужен OP, что должно быть хорошо. –

+0

В тех случаях, когда передаваемые объекты неизменяемы, вы можете их повторно использовать (так, что несколько экземпляров «Квадрата» имеют ссылки на один и тот же экземпляр «Размер»). – nnnnnn

ответ

0

Производительность должна быть прекрасной.

Даже если вы должны были использовать что-то вроде Square(x, y, with, height), вы бы до сих пор создании Point и Size в конструкторе Square «s.

+0

* «вы все равно будете создавать точку и размер в конструкторе Square». * * - Нет, если все хранятся в отдельных свойствах. (Это одна из возможностей, просто не хочу, чтобы OP захотела сделать.) – nnnnnn

+0

@nnnnnn: Верно, но тогда не было бы причин не использовать 'Square (x, y, with, height)' :-) – Cerbrus

Смежные вопросы