Dalam analogi dunia nyata, ketika kendaraan mengalami kerusakan maka kendaraan tersebut akan diperbaiki di bengkel (factory), sehingga kita perlu membuat class baru yang berperan sebagai factory, sebutlah class tersebut VehicleFactory. Di dalam kelas VehicleFactory terdapat satu method repair() yang dapat menerima banyak kendaraan sebagai parameternya.
- class Vehicle {
- constructor(licensePlate, manufacture) {
- this.licensePlate = licensePlate;
- this.manufacture = manufacture;
- this.engineActive = false;
- }
- /*
- kode lainnya
- */
- }
- /* kode lainnya dalam pembuatan class Car,
- Motorcycle, dsb. */
- class VehicleFactory {
- repair(vehicles) {
- vehicles.forEach(vehicle => {
- console.log(`Kendaraan ${vehicle.licensePlate} sedang melakukan perawatan`)
- })
- }
- }
- const johnCar = new Car("H121S", "Honda", 4);
- const tomMotor = new Motorcycle("GF121J", "Yamaha", 2);
- const dimasCar = new Car("TA1408K", "Tesla", 4);
- /* Membuat instance untuk memanggil fungsi repair */
- const vehicleFactory = new VehicleFactory();
- vehicleFactory.repair([johnCar, tomMotor, dimasCar]);
- /* output:
- Kendaraan H121S sedang melakukan perawatan
- Kendaraan GF121J sedang melakukan perawatan
- Kendaraan TA1408K sedang melakukan perawatan
- */
- class Vehicle {
- constructor(licensePlate, manufacture) {
- this.licensePlate = licensePlate;
- this.manufacture = manufacture;
- this.engineActive = false;
- }
- /*
- kode lainnya
- */
- }
- /* kode lainnya dalam pembuatan class Car,
- Motorcycle, dsb. */
- class VehicleFactory {
- static repair(vehicles) {
- vehicles.forEach(vehicle => {
- console.log(`Kendaraan ${vehicle.licensePlate} sedang melakukan perawatan`)
- })
- }
- }
- class Vehicle {
- constructor(licensePlate, manufacture) {
- this.licensePlate = licensePlate;
- this.manufacture = manufacture;
- this.engineActive = false;
- }
- /*
- kode lainnya
- */
- }
- /* kode lainnya dalam pembuatan class Car,
- Motorcycle, dsb. */
- class VehicleFactory {
- repair(vehicles) {
- vehicles.forEach(vehicle => {
- console.log(`Kendaraan ${vehicle.licensePlate} sedang melakukan perawatan`)
- })
- }
- }
- const johnCar = new Car("H121S", "Honda", 4);
- const tomMotor = new Motorcycle("GF121J", "Yamaha", 2);
- const dimasCar = new Car("TA1408K", "Tesla", 4);
- /* Membuat instance untuk memanggil fungsi repair */
- const vehicleFactory = new VehicleFactory();
- vehicleFactory.repair([johnCar, tomMotor, dimasCar]);
- /* output:
- Kendaraan H121S sedang melakukan perawatan
- Kendaraan GF121J sedang melakukan perawatan
- Kendaraan TA1408K sedang melakukan perawatan
- */
- class Vehicle {
- constructor(licensePlate, manufacture) {
- this.licensePlate = licensePlate;
- this.manufacture = manufacture;
- this.engineActive = false;
- }
- /*
- kode lainnya
- */
- }
- /* kode lainnya dalam pembuatan class Car,
- Motorcycle, dsb. */
- class VehicleFactory {
- static repair(vehicles) {
- vehicles.forEach(vehicle => {
- console.log(`Kendaraan ${vehicle.licensePlate} sedang melakukan perawatan`)
- })
- }
- }
- Like
- Digg
- Tumblr
- VKontakte
- Buffer
- Love This
- Odnoklassniki
- Meneame
- Blogger
- Amazon
- Yahoo Mail
- Gmail
- AOL
- Newsvine
- HackerNews
- Evernote
- MySpace
- Mail.ru
- Viadeo
- Line
- Comments
- SMS
- Viber
- Telegram
- Subscribe
- Skype
- Facebook Messenger
- Kakao
- LiveJournal
- Yammer
- Edgar
- Fintel
- Mix
- Instapaper
- Copy Link