Как говорится в этом теге, это пример шаблона стратегии в Javascript?Пример, этот шаблон стратегии?
(я думаю, что вопрос является более подходящим для них, но Просмотра Коды переадресовать меня на StackOverflow)
var canvas = {
context: document.getElementById("canvas").getContext("2d")
};
///////////////////////////////////////////////////
function Square(_strategy) {
this.x = 50;
this.y = 50;
this.width = 100;
this.height = 100;
this.strategy = _strategy;
}
Square.prototype.draw = function() {
this.strategy(this);
};
///////////////////////////////////////////////////
function Circle(strategy) {
Square.call(this, strategy);
this.radius = 25;
}
Circle.prototype = new Square();
///////////////////////////////////////////////////
function drawSquare(shape) {
canvas.context.strokeRect(shape.x, shape.y, shape.width, shape.height);
}
///////////////////////////////////////////////////
function drawCircle(shape) {
canvas.context.beginPath();
canvas.context.arc(shape.x , shape.y, shape.radius, 0, 360, false);
canvas.context.stroke();
}
///////////////////////////////////////////////////
var shapes = [];
shapes.push(new Square(drawSquare));
shapes.push(new Circle(drawCircle));
for(var i=0; i<shapes.length; i++) {
shapes[i].draw();
}
Я знаю, что я не нужен шириной и высоту для рисования круга. (Я буду нуждаться в них позже для выбора этого круга, поэтому это не ошибка :))
Если вы голосуете, пожалуйста, оставьте хотя бы объяснение, почему ... – Srle
Я не проголосовал, но этот вопрос не показывает никаких усилий и не демонстрирует никакого понимания предмета. Вы в основном разместили стену кода и сказали: «_true или false, это использует шаблон X_». – jahroy
Я думаю, что это не «стена» кода, пример просто достаточно, чтобы его пересмотреть в течение нескольких минут. Во всяком случае, спасибо на предложение. – Srle