私が遊んでいる小さなファクトリ パターンの例があります。これは正常に動作し、一般的なインターフェイスを使用して関連オブジェクトを作成する方法を提供します。
$(document).ready(function () {
function Car(options) {
this.color = options.color || 'unknown',
this.name = options.carName || 'unknown',
this.doors = options.doors || 4;
}
function Truck(options) {
this.color = options.color || 'unknown',
this.name = options.name || 'unknow',
this.doors = options.doors || 2;
}
function VehicleFactory() { };
VehicleFactory.prototype.createVehicle = function (options) {
if (options.vehicleType === 'car') {
return new Car(options);
}
else {
return new Truck(options);
}
}
var factory = new VehicleFactory();
var car = factory.createVehicle({
vehicleType: 'car',
name: 'bill',
doors: 2
});
console.log(car instanceof Car);//true
var truck = factory.createVehicle({
vehicleType: 'truck',
doors: 3
});
//checks to make sure that objects are of the right type
console.log('truck is an instance of Car: ' + (truck instanceof Car)); //false
console.log('truck is an instace of Truck: ' + (truck instanceof Truck)); //true
console.log(truck);
});
C# から来ているので、これは十分になじみがあり、理解するのは簡単です。しかし、私は巨人の肩の上に立とうとする傾向もあり、ダグ・クロックフォードは新しいことにノーと言った. このコードをリファクタリングして、新しいコードの代わりに
使用するにはどうすればよいですか。Object.create
それは平均的な人にとって本当に重要なのか、それとも上層部がそう言うから重要なのか?