Есть ли название у такого подхода?

Рейтинг: 1Ответов: 1Опубликовано: 10.12.2014
static function setDataOne( data ){
    return new One( data );
}

static function setDataTwo( data ){
    return new Two( data );
}

class Test {
    var setData;

    function setFunction( fun ){
        this.setData = fun;
    }
}

var test = new Test( );
test.setData( setDataOne );
// test.setData( setDataTwo );

Есть ли "правильное" название у такого подхода?

Обновление

Подход состоит в том, чтобы менять поведение во время выполнения.
И это псевдо-код, да и разницы от названия языка нет.

А на живых примерах можно сопоставить методы сортировки, когда вместе с коллекцией, можно и сам метод сортировки передавать.
Но я соглашусь с ответом, который мне дали, лучше это дело как стратегия оформить.

Ответы

▲ 4Принят

Похоже на паттерн Стратегия (потому что есть возможность в рантайме менять поведение класса путём изменения свойства, которое инкапсулирует логику поведения) или Абстрактная фабрика (потому что есть сущности, реализующие единый интерфейс, занимающиеся созданием объектов).