Класс фабрики - сохраняет объекты

Я немного изменил твой код для достижения твоей цели. Посмотрите ниже

function myFunction(array) {

    var oddElements = array.reduce((arr, val, index) => {
        if (val % 2 !== 0) {
            arr.push(val);
        }
        return arr.sort(function(a, b){return a - b});
    }, []);

    var index = 0;
    var finalElements = [];
    for(var i=0; i<array.length; i++) {
        var element = array[i];
        if(element %2 !==0) {
            finalElements.push(oddElements[index]);
            index++;
        } else {
            finalElements.push(element);
        }
    }
    return finalElements;
}
console.log(myFunction([5, 3, 2, 8, 1, 4, 11]));

Помните, функция сортировки по умолчанию сортирует значения по алфавиту. Вот почему вы не можете просто использовать arr.sort ()

5
задан schmoopy 10 October 2008 в 01:18
поделиться

3 ответа

Если Вы обеспокоены материалом базы данных в классах - Вы рассмотрели использование картопостроителя O/R?

Это сохранило бы материал базы данных полностью от Вашего кода и Ваших объектов области чистым.

Возможно, смотрите на NHibernate или Активную Запись.

3
ответ дан 13 December 2019 в 19:38
поделиться

Нет, это не глупо вообще, на самом деле, это - путь, как все должны сделать это. Бизнес-объект не должен содержать логику персистентности.

Btw при использовании C# 3.0, затем Вы даже не могли бы обеспокоиться классом Фабрики. Просто создайте дополнительные методы. Тем путем Вы можете все еще иметь свой код персистентности, изолированный от бизнес-объекта, и все еще смочь назвать myObject. Сохраните ().

2
ответ дан 13 December 2019 в 19:38
поделиться

Класс фабрики является creational шаблоном, который помогает с созданием новых объектов.

Существуют различные шаблоны, которые имеют дело с сохранением объектов, один из которых является картопостроителем данных http://martinfowler.com/eaaCatalog/dataMapper.html

Это часто используется в conjection с Репозиторием http://martinfowler.com/eaaCatalog/repository.html

Можно использовать эти шаблоны, чтобы абстрагировать базу данных далеко от домена/бизнес-объектов и получить доступ к ним из приложения, чтобы запросить и сохранить объекты.

Таким образом, картопостроитель/репозиторий данных ответственен за оба аспекта персистентности (заполняющий от базы данных и сохраняющий назад к базе данных).

6
ответ дан 13 December 2019 в 19:38
поделиться
Другие вопросы по тегам:

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