Skip to content

Latest commit

 

History

History
55 lines (40 loc) · 952 Bytes

AbstractFactory.md

File metadata and controls

55 lines (40 loc) · 952 Bytes

← Назад

Abstract Factory / Абстрактная фабрика

Abstract Factory

class Candy {}
class Soda {}
class Barbecue {}
class Wine {}

class ChildrensHolidayFactory {
	makeFood () {
		return Candy
	}

	makeDrink () {
		return Soda
	}
}

class AdultsHolidayFactory {
	makeFood () {
		return Barbecue
	}

	makeDrink () {
		return Wine
	}
}

function makeHolidayFun (food, drink) {}

{
	// Детский праздник
	const factory = new ChildrensHolidayFactory

	const food = factory.makeFood()
	const drink = factory.makeDrink()

	makeHolidayFun(food, drink)
}


{
	// Детский праздник
	const factory = new AdultsHolidayFactory

	const food = factory.makeFood()
	const drink = factory.makeDrink()

	makeHolidayFun(food, drink)
}