├── .gitignore ├── README.md ├── composer.json └── src ├── Decorator ├── Starbuzz │ ├── Beverage.php │ ├── CondimentDecorator.php │ ├── DarkRoast.php │ ├── Enum │ │ └── ServingSize.php │ ├── Espresso.php │ ├── Milk.php │ └── Mocha.php ├── doc.md └── uml │ └── uml.png ├── Observer ├── Collection.php ├── ObserverCollection.php ├── Weather │ ├── Contract │ │ ├── DisplayElement.php │ │ ├── Observer.php │ │ └── Subject.php │ ├── CurrentConditionDisplay.php │ ├── ForcastDisplay.php │ ├── Observable.php │ └── WeatherData.php ├── doc.md └── uml │ └── uml.png └── Strategy ├── Duck ├── Duck.php ├── FlyBehaviour.php ├── FlyNoWay.php ├── FlyRocketPowered.php ├── FlyWithWings.php ├── MallardDuck.php ├── ModelDuck.php ├── MuteQuack.php ├── Quack.php └── QuackBehaviour.php ├── doc.md └── uml └── uml.png /.gitignore: -------------------------------------------------------------------------------- 1 | /vendor/ 2 | .idea 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/README.md -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/composer.json -------------------------------------------------------------------------------- /src/Decorator/Starbuzz/Beverage.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Decorator/Starbuzz/Beverage.php -------------------------------------------------------------------------------- /src/Decorator/Starbuzz/CondimentDecorator.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Decorator/Starbuzz/CondimentDecorator.php -------------------------------------------------------------------------------- /src/Decorator/Starbuzz/DarkRoast.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Decorator/Starbuzz/DarkRoast.php -------------------------------------------------------------------------------- /src/Decorator/Starbuzz/Enum/ServingSize.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Decorator/Starbuzz/Enum/ServingSize.php -------------------------------------------------------------------------------- /src/Decorator/Starbuzz/Espresso.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Decorator/Starbuzz/Espresso.php -------------------------------------------------------------------------------- /src/Decorator/Starbuzz/Milk.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Decorator/Starbuzz/Milk.php -------------------------------------------------------------------------------- /src/Decorator/Starbuzz/Mocha.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Decorator/Starbuzz/Mocha.php -------------------------------------------------------------------------------- /src/Decorator/doc.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Decorator/doc.md -------------------------------------------------------------------------------- /src/Decorator/uml/uml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Decorator/uml/uml.png -------------------------------------------------------------------------------- /src/Observer/Collection.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Observer/Collection.php -------------------------------------------------------------------------------- /src/Observer/ObserverCollection.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Observer/ObserverCollection.php -------------------------------------------------------------------------------- /src/Observer/Weather/Contract/DisplayElement.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Observer/Weather/Contract/DisplayElement.php -------------------------------------------------------------------------------- /src/Observer/Weather/Contract/Observer.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Observer/Weather/Contract/Observer.php -------------------------------------------------------------------------------- /src/Observer/Weather/Contract/Subject.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Observer/Weather/Contract/Subject.php -------------------------------------------------------------------------------- /src/Observer/Weather/CurrentConditionDisplay.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Observer/Weather/CurrentConditionDisplay.php -------------------------------------------------------------------------------- /src/Observer/Weather/ForcastDisplay.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Observer/Weather/ForcastDisplay.php -------------------------------------------------------------------------------- /src/Observer/Weather/Observable.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Observer/Weather/Observable.php -------------------------------------------------------------------------------- /src/Observer/Weather/WeatherData.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Observer/Weather/WeatherData.php -------------------------------------------------------------------------------- /src/Observer/doc.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Observer/doc.md -------------------------------------------------------------------------------- /src/Observer/uml/uml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Observer/uml/uml.png -------------------------------------------------------------------------------- /src/Strategy/Duck/Duck.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Strategy/Duck/Duck.php -------------------------------------------------------------------------------- /src/Strategy/Duck/FlyBehaviour.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Strategy/Duck/FlyBehaviour.php -------------------------------------------------------------------------------- /src/Strategy/Duck/FlyNoWay.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Strategy/Duck/FlyNoWay.php -------------------------------------------------------------------------------- /src/Strategy/Duck/FlyRocketPowered.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Strategy/Duck/FlyRocketPowered.php -------------------------------------------------------------------------------- /src/Strategy/Duck/FlyWithWings.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Strategy/Duck/FlyWithWings.php -------------------------------------------------------------------------------- /src/Strategy/Duck/MallardDuck.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Strategy/Duck/MallardDuck.php -------------------------------------------------------------------------------- /src/Strategy/Duck/ModelDuck.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Strategy/Duck/ModelDuck.php -------------------------------------------------------------------------------- /src/Strategy/Duck/MuteQuack.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Strategy/Duck/MuteQuack.php -------------------------------------------------------------------------------- /src/Strategy/Duck/Quack.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Strategy/Duck/Quack.php -------------------------------------------------------------------------------- /src/Strategy/Duck/QuackBehaviour.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Strategy/Duck/QuackBehaviour.php -------------------------------------------------------------------------------- /src/Strategy/doc.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Strategy/doc.md -------------------------------------------------------------------------------- /src/Strategy/uml/uml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terdia/HeadFirstDesignPatternsPHP/HEAD/src/Strategy/uml/uml.png --------------------------------------------------------------------------------