3 IT 35 Design Principles and Design Patterns
3 IT 35 Design Principles and Design Patterns
and Design
Patterns
Software Design
Software design is the process by which an agent creates a
specification of a software artifact intended to accomplish
goals, using a set of primitive components and subject to
constraints. (Wikipedia.com)
Levels:
• Interface Design
• Architectural Design
• Detailed Design
IT 35 - Applications Development and Emerging Technologies (Design Principles and Design Patterns)
Architectural Design
Architectural design is a process for identifying the sub-systems
making up a system and the framework for sub-system control and
communication.
Stage 1: Clean code. ...
Stage 2: Programming Paradigms. ...
Stage 3: Object-Oriented Programming. ...
Stage 4: Design Principles. ...
Stage 5: Design Patterns. ...
Stage 6: Architectural Principles.
IT 35 - Applications Development and Emerging Technologies (Design Principles and Design Patterns)
Design Principles
Design principles provide high level guidelines to design
better software applications. They do not provide
implementation guidelines and are not bound to any
programming language.
The SOLID (SRP, OCP, LSP, ISP, DIP) principles are one of
the most popular sets of design principles.
IT 35 - Applications Development and Emerging Technologies (Design Principles and Design Patterns)
Design Pattern
Design Pattern provides low-level solutions related to
implementation, of commonly occurring object-oriented
problems. In other words, design pattern suggests a specific
implementation for the specific object-oriented programming
problem.
For example, if you want to create a class that can only have
one object at a time, then you can use the Singleton design
pattern which suggests the best way to create a class that can
only have one object.
IT 35 - Applications Development and Emerging Technologies (Design Principles and Design Patterns)
Design Principles: SOLID
Single responsibility Principle
Open/closed Principle
https://www.digitalocean.com/community/conceptual_articles/s-o-l-i-d-the-fir
st-five-principles-of-object-oriented-design
https://subscription.packtpub.com/book/application_development/9781786463593/1/ch01lvl1s
ec17/design-patterns-and-principles
IT 35 - Applications Development and Emerging Technologies (Design Principles and Design Patterns)
Types of Design Patterns
• 1. Creational: These patterns are designed for class instantiation. They
can be either class-creation patterns or object-creational patterns.
• 2. Structural: These patterns are designed with regard to a class's
structure and composition. The main goal of most of these patterns is to
increase the functionality of the class(es) involved, without changing
much of its composition.
• 3. Behavioral: These patterns are designed depending on how one class
communicates with others.
https://www.freecodecamp.org/news/the-basic-design-patterns-all-developers
-need-to-know/
IT 35 - Applications Development and Emerging Technologies (Design Principles and Design Patterns)
References
• https://www.tutorialsteacher.com/articles/difference-between
-design-principle-and-design-pattern
• https://stackify.com/solid-design-principles/
• https://hackernoon.com/10-oop-design-principles-every-progr
ammer-should-know-f187436caf65
• https://refactoring.guru/design-patterns
• https://www.educative.io/blog/object-oriented-programming
IT 35 - Applications Development and Emerging Technologies (Design Principles and Design Patterns)