статический класс и одиночный элемент

Я также не знаю значение индекса этого объекта

blockquote>

, для которого вы можете использовать findIndex . Сначала получите индекс требуемого объекта, а в другой переменной получите последний объект в массиве. Затем поменяйте их местами

var arrayData = [{
    label: "data",
    value: "data"
  },
  {
    label: "data",
    value: "data"
  },
  {
    label: "Others",
    value: "Others"
  },
  {
    label: "data",
    value: "data"
  },
]

let findIndex = arrayData.findIndex(function(item) {
  return item.label === 'Others' && item.value === 'Others'
})
let storeLastVal = arrayData[arrayData.length - 1];
let otherVal = arrayData[findIndex]
arrayData[findIndex] = storeLastVal;
arrayData[arrayData.length - 1] = otherVal;
console.log(arrayData)
12
задан Mikeage 6 April 2009 в 10:22
поделиться

5 ответов

Этот вид класса известен как моносостояние - это несколько отличается от одиночного элемента.

Почему использование моносостояние, а не одиночный элемент? В их исходной статье на шаблоне Bell & Crawford предлагает три причины (перефразируемый мной):

  • Более естественный синтаксис доступа
  • одиночный элемент испытывает недостаток в имени
  • легче наследоваться

Я должен признать, я не нахожу ни один из них особенно востребованным. С другой стороны, моносостояние определенно не хуже, чем одиночный элемент.

17
ответ дан 2 December 2019 в 04:17
поделиться

Robert C. Martin написал статью несколько раз назад о различиях между моно шаблоном состояния и шаблоном "одиночка".

15
ответ дан 2 December 2019 в 04:17
поделиться

Рассмотрите семейство Регистрирующихся классов. Они все реализуют "LogMessage (сообщение, файл, line_number). Некоторые отправляют сообщения в stderr, некоторые посылают электронное письмо ряду разработчиков, некоторый инкремент количество конкретного сообщения в таблице частот сообщения, некотором маршруте к/dev/null. Во времени выполнения программа проверяет свой вектор аргумента, реестр или переменные среды, для которых Вход техники для использования и инстанцирует Регистрирующейся Singleton с объектом от подходящего класса, возможно загружая предоставленный конечного пользователя DLL, чтобы сделать так. Та функциональность жестка для дублирования с чистой статической Singleton.

2
ответ дан 2 December 2019 в 04:17
поделиться

класс со всеми статическими участниками/методами своего рода одноэлементный шаблон разработки

Класс - не шаблон. Когда мы говорим о классах, мы можем сказать, что класс реализует шаблон.


Статические функции - не являются функциями членства, они подобны на глобальных функциях. Возможно, Вам не нужен никакой класс?

Кавычка из Википедии:

В разработке программного обеспечения шаблон "одиночка" является шаблоном разработки, который используется для ограничения инстанцирования класса к одному объекту.

По этому определению Ваша реализация не является одноэлементной реализацией - Вы не используете общую идею Одна (или несколько в расширенном определении) экземпляр класса.

Но иногда (не всегда) использование класса со всеми статическими функциями и шаблоном "одиночка" - не имеет значимое различие.

1
ответ дан 2 December 2019 в 04:17
поделиться

Для одиночного элемента все конструкторы должны быть частными, так, чтобы можно было получить доступ только через функцию. Но Вы достаточно близки к нему.

0
ответ дан 2 December 2019 в 04:17
поделиться
Другие вопросы по тегам:

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