This article shows how Scala adopts and transforms the classical software design patterns. The content of the article is also (independently) translated into Russian and Chinese. Design pattern is a general reusable solution to a commonly occurring problem in software design. A design pattern is not a finished code, but rather a template for how to solve a problem that can be used in many differen