Implementing Common Design Patterns in Scala
1.1 Factory Method
Factory Method pattern provides a flexible way to instantiate an object from several subclasses inherited from a superclass or a group of classes implemented a given trait.
1.2 Singleton
Singleton pattern describes a type that can only have one object constructed for it. All objects that use an instance of that type use the same instance. Singleton concept is fully supported in Scala Language with Scala "object".
2.1 Proxy
Proxy pattern lets clients to access the real Service/Object indirectly through a placeholder object or proxy. For example, if requiring protection, access control can be applied through proxy.
3.1 Observer Pattern
Observer Pattern provides a way of ensuring that a set of objects is notified whenever the state of another object changes.