Do you use Design Patterns in your projects ?

I would like to talk about a useful software design called Design Patterns. I always thought that Design Patterns are useless when working on my personal projects. However, when working on real projects will multiple developers, the design patterns make us understand and share the similar knowledge without confusion.I will not go into any deep details about the mechanics or implementation of any particular Design Patterns. But don’t worry there are plenty of excellent sources for Design patterns available elsewhere (Ex. google).

私は、Design Patternsと呼ばれる有用なソフトウェアデザインについてお話したいと思います。 私は、個人的なプロジェクトに取り組んでいるときは、デザインパターンは役に立たないといつも思っていました。 しかし、現場でのプロジェクトに取り組む際に、特に複数の開発者がいる場合、設計パターンによって、私たちは同様の知識を混乱なく理解し共有することができます。

So what exactly is a Design Patterns?

Simply, a Design pattern is a solution that applies to repeated or recurring design problems or issues in development. It really helps us to categorise problems and apply the most suitable pattern increasing productivity.

単に、デザインパターンは、繰り返しまたは繰り返し発生する設計上の問題や開発上の問題に適用されるソリューションです。 問題を分類し、最も適したパターンを適用して生産性を向上させるのに役立ちます。

So why do we need Design Patterns?

Do you want to re-invent the wheel for some problem? I would not want to do it because it’s a pain in my ass. So instead of re-inventing the wheel, you can just re-use an existing solution that has been recognised across organisations as something that simply works. Since it is well documented and understood for many years by software architects, designers and developers, their application within a specific solution will likewise be well understood.

あなたは何かの問題のために車輪を再発明したいですか? 私はそれが私のお尻の痛みであるので、それをしたくないです。 だから、ホイールを再発明する代わりに、単純に機能するものとして組織全体で認められている既存のソリューションを再利用することができます。 ソフトウェアアーキテクト、デザイナー、開発者は長年にわたり十分に文書化され、理解されているため、特定のソリューション内のアプリケーションも同様によく理解されます。

The following list is some of the design patterns especially used for java developments.(In my case)

  • Creational Design Pattern
    1. Factory Pattern
    2. Abstract Factory Pattern
    3. Singleton Pattern
    4. Prototype Pattern
    5. Builder Pattern.
  • Structural Design Pattern
    1. Adapter Pattern
    2. Bridge Pattern
    3. Composite Pattern
    4. Decorator Pattern
    5. Facade Pattern
    6. Flyweight Pattern
    7. Proxy Pattern
  • Behavioural Design Pattern
    1. Chain Of Responsibility Pattern
    2. Command Pattern
    3. Interpreter Pattern
    4. Iterator Pattern
    5. Mediator Pattern
    6. Memento Pattern
    7. Observer Pattern
    8. State Pattern
    9. Strategy Pattern
    10. Template Pattern
    11. Visitor Pattern