đĨA1-Single Responsibility Principle (SRP) - Overview
SOLID āĻāϰ 'S' āĻšāϞ Single Responsibility Principle, āϝāĻž āϏāĻžāϧāĻžāϰāĻŖāϤ SRP āύāĻžāĻŽā§ āĻĒāϰāĻŋāĻāĻŋāϤāĨ¤
SRP āĻāĻŋ?
Single Responsibility Principle āĻŦāϞāĻā§ āϝ⧠'āĻĒā§āϰāϤāĻŋāĻāĻŋ āϏāĻĢāĻāĻāϝāĻŧā§āϝāĻžāϰ āĻāĻĒāĻžāĻĻāĻžāύā§āϰ āĻāĻāĻāĻŋ āĻāĻŦāĻ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāĻāĻāĻŋ āĻĻāĻžāϝāĻŧāĻŋāϤā§āĻŦ āĻĨāĻžāĻāĻž āĻāĻāĻŋāϤ'āĨ¤ [component should have one and only one responsibility']
- [component should have one and only one (responsibility) reason to change]
āϝāĻāύ āĻāĻŽāϰāĻž āϏāĻĢāĻāĻāϝāĻŧā§āϝāĻžāϰ āĻāĻĒāĻžāĻĻāĻžāύ āĻŦāϞāĻŋ, āϤāĻāύ āϝāĻĻāĻŋ āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ āĻ āĻŦāĻā§āĻā§āĻ-āĻ āϰāĻŋāϝāĻŧā§āύā§āĻā§āĻĄ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻŋāĻ āĻāĻžāώāĻž āϝā§āĻŽāύ C++ āĻāϰ āĻĒā§āϰāϏāĻā§āĻā§ āĻāĻĨāĻž āĻŦāϞāĻŋ, āϤāĻŦā§ āĻāĻŽāĻžāĻĻā§āϰ āĻĒā§āϰāĻĨāĻŽ āĻŽāύ⧠āĻĒāĻĄāĻŧā§ āĻāĻāĻāĻŋ C++ āĻā§āϞāĻžāϏāĨ¤
āĻāĻŋāύā§āϤ⧠āĻāĻāĻŋ āϞāĻā§āώā§āϝ āĻāϰāĻž āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āϝ⧠āϏāĻĢāĻāĻāϝāĻŧā§āϝāĻžāϰ āĻāĻĒāĻžāĻĻāĻžāύā§āϰ āϧāĻžāϰāĻŖāĻžāĻāĻŋ āĻāĻāĻāĻŋ āĻĒāĻĻā§āϧāϤāĻŋ, āĻĢāĻžāĻāĻļāύ āĻŦāĻž āĻāĻŽāύāĻāĻŋ āĻāĻāĻāĻŋ āĻŽāĻĄāĻŋāĻāϞāĻā§āĻ āύāĻŋāϰā§āĻĻā§āĻļ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤ āϤāĻžāĻ āύāĻŋāϝāĻŧāĻŽāĻāĻŋ āĻŦāϞāĻā§ āϝ⧠āĻāĻāĻāĻŋ āϏāĻĢāĻāĻāϝāĻŧā§āϝāĻžāϰ āĻāĻĒāĻžāĻĻāĻžāύā§āϰ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāĻāĻāĻŋ āĻĻāĻžāϝāĻŧāĻŋāϤā§āĻŦ āĻĨāĻžāĻāĻž āĻāĻāĻŋāϤāĨ¤
āĻāĻĻāĻžāĻšāϰāĻŖ
āĻāĻŽāĻžāĻĻā§āϰ āĻāĻžāĻā§ āĻāĻāĻāĻŋ āĻāĻŦāĻŋ āĻāĻā§ āϝāĻž āĻāĻāĻŋ āĻŦā§āϝāĻžāĻā§āϝāĻž āĻāϰāϤ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰāĻŦā§āĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ Swiss Army KnifeāĨ¤ āĻāĻĒāύāĻŋ āĻāĻžāύā§āύ, āĻāĻāĻāĻŋ Swiss Army Knife āĻŦāĻŋāĻāĻŋāύā§āύ āĻāĻžāϰā§āϝāĻāϰ⧠āϏāϰāĻā§āĻāĻžāĻŽā§āϰ āϏāĻŽāύā§āĻŦāϝāĻŧ, āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻāĻāĻāĻŋāϰ āĻāϞāĻžāĻĻāĻž āĻāĻĻā§āĻĻā§āĻļā§āϝ āϰāϝāĻŧā§āĻā§āĨ¤ āĻāϤ⧠āĻāĻĒāύāĻŋ āĻā§āϝāĻžāύ āĻāĻĒā§āύāĻžāϰ āĻĨā§āĻā§ āĻļā§āϰ⧠āĻāϰ⧠āĻŽāĻŋāύāĻŋ āĻāĻžāĻāĻāĻŋ āĻŦāĻž āϏā§āĻā§āϰ⧠āĻĄā§āϰāĻžāĻāĻāĻžāϰ āĻĒāϰā§āϝāύā§āϤ āĻāĻŋāĻā§ āĻĒā§āϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āϝāĻĻāĻŋāĻ Swiss Army Knife āĻāĻāĻāĻŋ āĻŦāĻšā§āĻŽā§āĻā§ āϏāϰāĻā§āĻāĻžāĻŽ āĻāĻŦāĻ āĻā§āĻŦ āĻāĻžāĻšāĻŋāĻĻāĻžāϏāĻŽā§āĻĒāύā§āύ, āϏāĻĢāĻāĻāϝāĻŧā§āϝāĻžāϰā§āϰ āĻā§āώā§āϤā§āϰ⧠āύāĻŋāϝāĻŧāĻŽāĻā§āϞāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āĻšāϝāĻŧāĨ¤ āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ Swiss Army Knife āĻā§ āĻāĻāĻāĻŋ āϏāĻĢāĻāĻāϝāĻŧā§āϝāĻžāϰ āĻāĻĒāĻžāĻĻāĻžāύ āĻšāĻŋāϏā§āĻŦā§ āĻāĻžāĻŦā§āύ, āϤāĻŦā§ āĻāĻāĻŋ Single Responsibility Principle āϞāĻā§āĻāύ āĻāϰ⧠āĻāĻžāϰāĻŖ āĻāϤ⧠āĻāĻāĻžāϧāĻŋāĻ āĻĻāĻžāϝāĻŧāĻŋāϤā§āĻŦ āϰāϝāĻŧā§āĻā§āĨ¤
What does SRP recommend?
SRP āϏā§āĻĒāĻžāϰāĻŋāĻļ āĻāϰ⧠āϝ⧠āĻāĻŽāĻžāĻĻā§āϰ āĻāĻžāĻā§ āĻāĻŽāύ āĻāĻāĻāĻŋ āĻā§āϰāĻŋ āĻĨāĻžāĻāĻž āĻāĻāĻŋāϤ āϝāĻžāϰ āĻāĻāĻŽāĻžāϤā§āϰ āĻĻāĻžāϝāĻŧāĻŋāϤā§āĻŦ āĻāĻžāĻāĻžāϰ āĻāĻžāĻ āĻāϰāĻžāĨ¤ āĻāĻāĻŋ āĻā§āϝāĻžāύ āĻāĻĒā§āύāĻžāϰ āĻŦāĻž āϏā§āĻā§āϰ⧠āĻĄā§āϰāĻžāĻāĻāĻžāϰ āĻšāĻŋāϏā§āĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝāĻžāĻŦā§ āύāĻž; āĻāĻāĻŋ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāĻžāĻāĻžāϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāĻŦā§āĨ¤
đĨA2-Single Responsibility Principle (SRP) - Detailed Overview
āĻĒāϰāĻŋāĻāĻŋāϤāĻŋ
Here Single Responsibility Principle (SRP) āĻāĻ āύā§āϤāĻŋāĻāĻŋ āĻāĻŋāĻāĻžāĻŦā§ āϤā§āϰāĻŋ āĻšāϝāĻŧā§āĻā§ āϤāĻž āύāĻŋāϝāĻŧā§ āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ āĻāϞā§āĻāύāĻž āĻāϰāĻŦāĨ¤
Square āĻā§āϞāĻžāϏā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖ
āĻĻā§āĻā§āύ, āĻāĻāĻžāύ⧠āĻāĻāĻāĻŋ āĻā§āϞāĻžāϏ āĻāĻā§ āϝāĻžāϰ āύāĻžāĻŽ SquareāĨ¤ āĻāϤ⧠ā§ĒāĻāĻŋ āĻŽā§āĻĨāĻĄ āϰāϝāĻŧā§āĻā§: calculateArea()
, calculatePerimeter()
, draw()
, āĻāĻŦāĻ rotate()
āĨ¤
-
calculateArea
āĻāĻŦāĻcalculatePerimeter
āĻĢāĻžāĻāĻļāύāĻā§āϞāĻŋ āϏāĻ āĻŋāĻāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§, āĻ āϰā§āĻĨāĻžā§ āϤāĻžāϰāĻž āĻāĻāĻāĻŋ āĻŦāϰā§āĻā§āϰ āĻĒāĻžāĻļā§ āĻĻā§āĻāϝāĻŧāĻž āĻĻā§āϰā§āĻā§āϝ āĻ āύā§āϝāĻžāϝāĻŧā§ āĻāϰ āĻāϞāĻžāĻāĻž āĻāĻŦāĻ āĻĒāϰāĻŋāϧāĻŋ āĻāĻŖāύāĻž āĻāϰā§āĨ¤ -
draw()
āĻĢāĻžāĻāĻļāύāĻāĻŋ āϏā§āĻā§āϝāĻŧāĻžāϰā§āϰ āĻāĻŋāϤā§āϰāĻāĻŋ āĻĒā§āϰāĻĻāϰā§āĻļāύ⧠āϰā§āύā§āĻĄāĻžāϰ āĻāϰ⧠āĻāĻŦāĻ āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšā§āϤ āĻĄāĻŋāϏāĻĒā§āϞā§āϰ āϧāϰāύ āĻ āύā§āϝāĻžāϝāĻŧā§ āĻŦāĻŋāĻāĻŋāύā§āύ āĻā§āĻĄ āĻĒā§āϰāĻŦāĻžāĻš āϰāϝāĻŧā§āĻā§āĨ¤ -
rotate()
āĻĢāĻžāĻāĻļāύāĻāĻŋ āϏā§āĻā§āϝāĻŧāĻžāϰā§āϰ āĻāĻŋāϤā§āϰāĻāĻŋ āĻā§āϰāĻŋāϝāĻŧā§ āĻĻā§āϝāĻŧ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻŦāĻžāϰ āĻĄāĻŋāϏāĻĒā§āϞā§āϤ⧠āϰā§āύā§āĻĄāĻžāϰ āĻāϰā§āĨ¤
Cohesion āĻāĻŋ?
āĻāĻ āĻā§āĻĄ āϏā§āύāĻŋāĻĒā§āĻā§āϰ āĻĒā§āϰāϏāĻā§āĻā§, āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ āύāϤā§āύ āϧāĻžāϰāĻŖāĻž āĻļāĻŋāĻāĻŦ āϝāĻžāϰ āύāĻžāĻŽ CohesionāĨ¤ āϏāĻĢāĻāĻāϝāĻŧā§āϝāĻžāϰ āĻāĻāϤā§, āĻā§āĻšā§āĻļāύ āĻšāϞ āĻŦāĻŋāĻāĻŋāύā§āύ āĻ āĻāĻļā§āϰ āĻŽāϧā§āϝ⧠āϏāĻŽā§āĻĒāϰā§āĻā§āϰ āĻĄāĻŋāĻā§āϰāĻŋāĨ¤
āĻāĻĻāĻžāĻšāϰāĻŖ:
āĻāĻāĻāĻŋ āĻ āĻā§āĻāĻžāϞ⧠āĻāĻŦāϰā§āĻāύāĻžāϰ āĻā§āĻā§ āĻĻā§āĻā§āύāĨ¤ āĻāĻāĻžāύ⧠āĻŦāĻŋāĻāĻŋāύā§āύ āϧāϰāύā§āϰ āĻāĻŋāύāĻŋāϏ āϰāϝāĻŧā§āĻā§ āϝā§āĻŽāύ āĻĒā§āϞāĻžāϏā§āĻāĻŋāĻā§āϰ āĻā§āϝāĻžāύ, āĻŦāĻŋāϝāĻŧāĻžāϰā§āϰ āĻŦā§āϤāϞ, āĻāĻžāĻāĻā§āϰ āĻŦāϰā§āĻā§āϝ āĻāϤā§āϝāĻžāĻĻāĻŋāĨ¤ āĻāĻā§āϞā§āϰ āĻŽāϧā§āϝ⧠āϏāĻŽā§āĻĒāϰā§āĻ āĻā§āĻāĻā§ āĻĒāĻžāĻāϝāĻŧāĻž āĻāĻ āĻŋāύāĨ¤
āĻāĻŋāύā§āϤ⧠āϝāĻāύ āĻāĻā§āϞ⧠āĻāϞāĻžāĻĻāĻž āĻāϰāĻž āĻšāϝāĻŧ, āϤāĻāύ āĻāĻāĻāĻŋ āĻšāϞā§āĻĻ āĻŦāĻŋāύ⧠āĻĒā§āϞāĻžāϏā§āĻāĻŋāĻā§āϰ āĻŦā§āϤāϞāĻā§āϞāĻŋ āĻĻā§āĻāĻž āϝāĻžāϝāĻŧāĨ¤ āϝāĻĻāĻŋāĻ āĻŦā§āϤāϞāĻā§āϞāĻŋ āĻāĻāϰāĻāĻŽ āύāϝāĻŧ, āϤāĻŦā§ āϤāĻžāĻĻā§āϰ āĻŽāϧā§āϝ⧠āĻāĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āϏāĻŽā§āĻĒāϰā§āĻ āϰāϝāĻŧā§āĻā§: āϤāĻžāϰāĻž āϏāĻŦ āĻĒā§āϞāĻžāϏā§āĻāĻŋāĻā§āϰ āϤā§āϰāĻŋāĨ¤
Cohesion āĻāϰ āϏāĻāĻā§āĻāĻž āĻ āύā§āϝāĻžāϝāĻŧā§, āĻ āĻā§āĻāĻžāϞ⧠āĻāĻŦāϰā§āĻāύāĻžāϰ āĻā§āĻā§āϰ āĻŦāĻŋāώāϝāĻŧāĻŦāϏā§āϤā§āϤ⧠āĻāĻŽ āĻā§āĻšā§āĻļāύ āϰāϝāĻŧā§āĻā§, āĻāĻŦāĻ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻāϞāĻžāĻĻāĻž āĻāĻŦāϰā§āĻāύāĻžāϰ āĻā§āĻā§āϰ āĻŦāĻŋāώāϝāĻŧāĻŦāϏā§āϤā§āϤ⧠āĻāĻā§āĻ āĻā§āĻšā§āĻļāύ āϰāϝāĻŧā§āĻā§āĨ¤
Square āĻā§āϞāĻžāϏ⧠āĻā§āĻšā§āĻļāύ
Square āĻā§āϞāĻžāϏā§āϰ āĻŽā§āĻĨāĻĄāĻā§āϞā§āϰ āĻĻāĻŋāĻā§ āϤāĻžāĻāĻžāϞā§:
-
calculateArea
āĻāĻŦāĻcalculatePerimeter
āĻŽā§āĻĨāĻĄāĻā§āϞāĻŋ āĻāĻā§ āĻ āĻĒāϰā§āϰ āϏāĻžāĻĨā§ āĻāύāĻŋāώā§āĻ āĻāĻžāĻŦā§ āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ, āĻāĻžāϰāĻŖ āϤāĻžāϰāĻž āĻŦāϰā§āĻā§āϰ āĻĒāϰāĻŋāĻŽāĻžāĻĒ āύāĻŋāϝāĻŧā§ āĻāĻžāĻ āĻāϰā§āĨ¤ āϤāĻžāĻ āϤāĻžāĻĻā§āϰ āĻŽāϧā§āϝ⧠āĻāĻā§āĻ āĻā§āĻšā§āĻļāύ āϰāϝāĻŧā§āĻā§āĨ¤ -
draw()
āĻāĻŦāĻrotate()
āĻŽā§āĻĨāĻĄāĻā§āϞāĻŋ āϏā§āĻā§āϝāĻŧāĻžāϰā§āϰ āĻāĻŋāϤā§āϰ āϰā§āύā§āĻĄāĻžāϰāĻŋāĻ āύāĻŋāϝāĻŧā§ āĻāĻžāĻ āĻāϰā§, āϤāĻžāĻ āϤāĻžāĻĻā§āϰ āĻŽāϧā§āϝ⧠āĻāĻā§āĻ āĻā§āĻšā§āĻļāύ āϰāϝāĻŧā§āĻā§āĨ¤
āĻāĻŋāύā§āϤ⧠āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āϏāĻŽāϏā§āϤ āĻŽā§āĻĨāĻĄāĻā§ āĻāĻāϏāĻžāĻĨā§ āĻŦāĻŋāĻŦā§āĻāύāĻž āĻāϰā§āύ, āϤāĻŦā§ āĻā§āĻšā§āĻļāύā§āϰ āϏā§āϤāϰ āĻāĻŽāĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, calculatePerimeter()
āĻŽā§āĻĨāĻĄāĻāĻŋ draw()
āĻŽā§āĻĨāĻĄā§āϰ āϏāĻžāĻĨā§ āĻāύāĻŋāώā§āĻ āĻāĻžāĻŦā§ āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ āύāϝāĻŧ āĻāĻžāϰāĻŖ āϤāĻžāϰāĻž āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻāĻŋāύā§āύ āĻĻāĻžāϝāĻŧāĻŋāϤā§āĻŦ āύāĻŋāϝāĻŧā§ āĻāĻžāĻ āĻāϰā§āĨ¤
āϏāĻŽāĻžāϧāĻžāύ
āĻāĻāύ āĻāĻŽāĻŋ āĻāĻŋāĻā§ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻŦ āϝāĻžāϤ⧠āĻā§āĻšā§āĻļāύā§āϰ āϏā§āϤāϰ āĻŦāĻžāĻĄāĻŧāĻžāύ⧠āϝāĻžāϝāĻŧāĨ¤ āĻāĻŽāĻŋ draw
āĻāĻŦāĻ rotate
āĻŽā§āĻĨāĻĄāĻā§āϞāĻŋāĻā§ āĻāĻāĻāĻŋ āĻāϞāĻžāĻĻāĻž āĻā§āϞāĻžāϏ⧠āϏā§āĻĨāĻžāύāĻžāύā§āϤāϰ āĻāϰāĻŦ, āϝāĻžāϰ āύāĻžāĻŽ āĻšāĻŦā§ SquareUIāĨ¤
āĻāĻāĻžāĻŦā§, āϝāĻĻāĻŋāĻ āĻāĻŽāĻŋ āĻŽā§āĻĨāĻĄāĻā§āϞā§āĻā§ āĻĻā§āĻāĻāĻŋ āĻā§āϞāĻžāϏ⧠āĻāĻžāĻ āĻāϰā§āĻāĻŋ, āĻāĻŽāĻŋ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻā§āϞāĻžāϏ⧠āĻā§āĻšā§āĻļāύā§āϰ āϏā§āϤāϰ āĻŦāĻžāĻĄāĻŧāĻŋāϝāĻŧā§āĻāĻŋāĨ¤
- Square āĻā§āϞāĻžāϏ⧠āĻāĻāύ āĻĻā§āĻāĻŋ āĻŽā§āĻĨāĻĄ āĻāύāĻŋāώā§āĻ āĻāĻžāĻŦā§ āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ, āĻāĻžāϰāĻŖ āϤāĻžāϰāĻž āĻŦāϰā§āĻā§āϰ āĻĒāϰāĻŋāĻŽāĻžāĻĒ āύāĻŋāϝāĻŧā§ āĻāĻžāĻ āĻāϰā§āĨ¤
- SquareUI āĻā§āϞāĻžāϏ⧠āĻĻā§āĻāĻŋ āĻŽā§āĻĨāĻĄāĻ āĻāύāĻŋāώā§āĻ āĻāĻžāĻŦā§ āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ, āĻāĻžāϰāĻŖ āϤāĻžāϰāĻž āĻŦāϰā§āĻā§āϰ āĻā§āϰāĻžāĻĢāĻŋāĻ āϰā§āύā§āĻĄāĻžāϰāĻŋāĻ āύāĻŋāϝāĻŧā§ āĻāĻžāĻ āĻāϰā§āĨ¤
Coupling āĻāĻŋ?
Coupling āĻšāϞ āĻŦāĻŋāĻāĻŋāύā§āύ āϏāĻĢāĻāĻāϝāĻŧā§āϝāĻžāϰ āĻāĻĒāĻžāĻĻāĻžāύā§āϰ āĻŽāϧā§āϝ⧠āĻāύā§āϤāĻāύāĻŋāϰā§āĻāϰāϤāĻžāϝāĻŧ āϏā§āϤāϰāĨ¤ [Coupling is defined as the level of inter dependency between various software components.]
- Loose Coupling helps attain better adherence to the single responsibility principle
Student āĻā§āϞāĻžāϏ āĻāĻĻāĻžāĻšāϰāĻŖ
āĻāĻāύ āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ Student āĻā§āϞāĻžāϏ āĻĻā§āĻāĻŋāĨ¤ āĻāϰ āĻŽāϧā§āϝ⧠āĻāĻāĻāĻŋ āĻŽā§āĻĨāĻĄ āĻšāϞ save()
āϝāĻž āĻāĻžāϤā§āϰ āĻā§āϞāĻžāϏāĻā§ āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāĻāĻāĻĄ āĻĢāϰā§āĻŽā§ āϰā§āĻĒāĻžāύā§āϤāϰāĻŋāϤ āĻāϰ⧠āĻāĻŦāĻ āĻĄāĻžāĻāĻžāĻŦā§āϏ⧠āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āĨ¤
āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āĻāĻŦāĻŋāώā§āϝāϤ⧠MySQL āĻĨā§āĻā§ MongoDB āϤ⧠āĻāϞ⧠āϝāĻžāύ, āϤāĻŦā§ āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āĻā§āĻĄ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āϤāĻžāĻ Student āĻā§āϞāĻžāϏāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āϏ āϏā§āϤāϰā§āϰ āϏāĻžāĻĨā§ āĻļāĻā§āϤāĻāĻžāĻŦā§ āϝā§āĻā§āϤāĨ¤
āϏāĻŽāĻžāϧāĻžāύ
āĻāĻŽāϰāĻž āĻĄāĻžāĻāĻžāĻŦā§āϏ āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ āĻā§āĻĄāĻāĻŋāĻā§ āĻāĻāĻāĻŋ āύāϤā§āύ Repository āĻā§āϞāĻžāϏ⧠āϏā§āĻĨāĻžāύāĻžāύā§āϤāϰ āĻāϰāĻŦāĨ¤
āĻāĻāĻžāĻŦā§ āĻāĻŽāϰāĻž āĻļāĻā§āϤ āϏāĻāϝā§āĻ āĻ āĻĒāϏāĻžāϰāĻŖ āĻāϰā§āĻāĻŋ āĻāĻŦāĻ āĻāĻāĻŋāĻā§ āĻĻā§āϰā§āĻŦāϞ āĻāϰā§āĻāĻŋāĨ¤ āĻāĻāύ āϝāĻĻāĻŋ āĻāĻŽāϰāĻž āĻ āύā§āϤāϰā§āύāĻŋāĻšāĻŋāϤ āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻŋ, Student āĻā§āϞāĻžāϏāĻāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻŦāĻž āĻĒā§āύāĻāϏāĻāĻāϞāύā§āϰ āĻĒā§āϰāϝāĻŧā§āĻāύ āύā§āĻ; āĻļā§āϧā§āĻŽāĻžāϤā§āϰ Repository āĻā§āϞāĻžāϏ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
āĻāĻĒāϏāĻāĻšāĻžāϰ
āĻāĻŽāϰāĻž āĻĻā§āĻāĻŋ āϧāĻžāϰāĻŖāĻž āĻĻā§āĻā§āĻāĻŋ - Cohesion āĻāĻŦāĻ CouplingāĨ¤
- āĻāĻŽāϰāĻž āĻĻā§āĻā§āĻāĻŋ āϝ⧠Low Chohesion is Bad
- Single Responsibility Principle āϏāϰā§āĻŦāĻĻāĻž High Cohesion āϏāĻŽāϰā§āĻĨāύ āĻāϰā§āĨ¤
- āĻāĻŽāϰāĻž āĻĻā§āĻā§āĻāĻŋ āϝ⧠āĻļāĻā§āϤ āϏāĻāϝā§āĻ āĻāĻžāϰāĻžāĻĒāĨ¤
- Single Responsibility Principle āϏāϰā§āĻŦāĻĻāĻž Loose Cupling āϏā§āĻĒāĻžāϰāĻŋāĻļ āĻāϰā§āĨ¤
āϏā§āϤāϰāĻžāĻ āϏāϰā§āĻŦāĻĻāĻž āĻāĻā§āĻ āĻā§āĻšā§āĻļāύ [High Cohesion] āĻāĻŦāĻ āĻĻā§āϰā§āĻŦāϞ āϏāĻāϝā§āĻā§āϰ [Loose Cupling] āĻĻāĻŋāĻā§ āϞāĻā§āώā§āϝ āϰāĻžāĻā§āύāĨ¤ when ever we working on SRP
đĨA3-Single Responsibility Principle (SRP) - Modified Definition
āĻĒāϰāĻŋāĻāĻŋāϤāĻŋ
āĻāĻŽāϰāĻž āϏāĻāĻā§āĻāĻžāĻāĻŋāϰ āĻāĻāĻāĻŋ āύāϤā§āύ āĻĻā§āώā§āĻāĻŋāĻāĻā§āĻāĻŋ āĻĻā§āĻāĻŦāĨ¤
āύāϤā§āύ āϏāĻāĻā§āĻāĻž
āĻŽā§āϞ āύā§āϤāĻŋ āĻŦāϞā§: 'āĻĒā§āϰāϤāĻŋāĻāĻŋ āϏāĻĢāĻāĻāϝāĻŧā§āϝāĻžāϰ āĻāĻĒāĻžāĻĻāĻžāύā§āϰ āĻāĻāĻāĻŋ āĻāĻŦāĻ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāĻāĻāĻŋ āĻĻāĻžāϝāĻŧāĻŋāϤā§āĻŦ āĻĨāĻžāĻāĻž āĻāĻāĻŋāϤ'āĨ¤
āĻāĻāύ āĻāĻŽāϰāĻž 'āĻĻāĻžāϝāĻŧāĻŋāϤā§āĻŦ' āĻļāĻŦā§āĻĻāĻāĻŋāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠'āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āĻāĻžāϰāĻŖ' (reason to change) āĻļāĻŦā§āĻĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦāĨ¤
āϤāĻžāĻšāϞ⧠āύāϤā§āύ āϏāĻāĻā§āĻāĻž āĻšāĻŦā§: 'āĻĒā§āϰāϤāĻŋāĻāĻŋ āϏāĻĢāĻāĻāϝāĻŧā§āϝāĻžāϰ āĻāĻĒāĻžāĻĻāĻžāύā§āϰ āĻāĻāĻāĻŋ āĻāĻŦāĻ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāĻāĻāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āĻāĻžāϰāĻŖ āĻĨāĻžāĻāĻž āĻāĻāĻŋāϤ'āĨ¤
- [component should have one and only one reason to change]
āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āĻāĻžāϰāĻŖ āĻāĻŋ?
In the words of the Greek Philosopher - Heraclitus . "The only thing that is constant is change"
it always keeps changing in Software industry
āĻāĻĻāĻžāĻšāϰāĻŖ
āĻāĻŽāϰāĻž āĻĒā§āϰā§āĻŦāĻŦāϰā§āϤ⧠āϏā§āĻļāύā§āϰ Student āĻā§āϞāĻžāϏāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦāĨ¤ āϧāϰā§āύ āĻāĻ āĻā§āϞāĻžāϏāĻāĻŋ āĻāĻāĻāĻŋ āϏāĻĢāĻāĻāϝāĻŧā§āϝāĻžāϰ āĻŽāĻĄāĻŋāĻāϞā§āϰ āĻ āĻāĻļ āϝāĻž āĻāϤāĻŋāĻŽāϧā§āϝ⧠āĻā§āĻĒāĻžāĻĻāύ⧠āϰāϝāĻŧā§āĻā§āĨ¤
āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āϏāĻŽā§āĻāĻžāĻŦā§āϝ āĻāĻžāϰāĻŖ:
- āĻāĻžāϤā§āϰ āĻāĻāĻĄāĻŋāϰ āĻĢāϰāĻŽā§āϝāĻžāĻā§ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ
- āĻāĻžāϤā§āϰ āύāĻžāĻŽā§āϰ āĻĢāϰāĻŽā§āϝāĻžāĻā§ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ
- āĻĒā§āϰāϝā§āĻā§āϤāĻŋāĻāϤ āĻĻāϞā§āϰ āĻĒāϰāĻžāĻŽāϰā§āĻļ āĻ āύā§āϝāĻžāϝāĻŧā§ āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄā§ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ
āĻāĻŽāϰāĻž āϤāĻŋāύāĻāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āĻāĻžāϰāĻŖ āĻāĻŋāĻšā§āύāĻŋāϤ āĻāϰā§āĻāĻŋāĨ¤
SRP āĻāϰ āϏāĻŽāϏā§āϝāĻž
āϝāĻĻāĻŋ āĻāĻāĻāĻŋ āϏāĻĢāĻāĻāϝāĻŧā§āϝāĻžāϰ āĻāĻĒāĻžāĻĻāĻžāύ⧠āĻāĻāĻžāϧāĻŋāĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āĻāĻžāϰāĻŖ āĻĨāĻžāĻā§, āϤāĻŦā§ āϤāĻžāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āĻĢā§āϰāĻŋāĻā§āϝāĻŧā§āύā§āϏāĻŋ āĻŦāĻžāĻĄāĻŧāĻŦā§āĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻŦāĻžāĻ āĻĒā§āϰāĻŦā§āĻļā§āϰ āϏāĻŽā§āĻāĻžāĻŦāύāĻž āĻŦāĻžāĻĄāĻŧāĻžāϝāĻŧ, āϝāĻž āĻĒā§āύāĻāĻĒāϰā§āĻā§āώāĻŖā§āϰ āĻāύā§āϝ āϏāĻŽāϝāĻŧ āĻāĻŦāĻ āĻ āϰā§āĻĨ āĻŦā§āϝāϝāĻŧ āĻāϰā§āĨ¤
āϏāĻŽāĻžāϧāĻžāύ
āĻāĻŽāϰāĻž āĻĒā§āϰā§āĻŦāĻŦāϰā§āϤ⧠āϝ⧠āĻĒāĻĻāĻā§āώā§āĻĒ āύāĻŋāϝāĻŧā§āĻāĻŋāϞāĻžāĻŽ, āϤāĻž āĻāĻŦāĻžāϰ āĻā§āϰāĻšāĻŖ āĻāϰāĻŦāĨ¤ āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻ āĻĒāĻžāϰā§āĻļāύāĻā§āϞāĻŋ āĻāϞāĻžāĻĻāĻž Repository āĻā§āϞāĻžāϏ⧠āϏā§āĻĨāĻžāύāĻžāύā§āϤāϰ āĻāϰāĻŦāĨ¤
āĻā§āϞāĻžāϏ āĻŦāĻŋāĻāĻžāĻāύ:
- Student āĻā§āϞāĻžāϏ: ⧍āĻāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āĻāĻžāϰāĻŖ āĻĨāĻžāĻāĻŦā§āĨ¤
- Repository āĻā§āϞāĻžāϏ: ā§§āĻāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āĻāĻžāϰāĻŖ āĻĨāĻžāĻāĻŦā§āĨ¤
āϝāĻĻāĻŋāĻ Student āĻā§āϞāĻžāϏ⧠⧍āĻāĻŋ āĻāĻžāϰāĻŖā§ āϏāĻŽāϏā§āϝāĻž āϰāϝāĻŧā§āĻā§, āϤāĻŦā§ āϝāĻĻāĻŋ āϤāĻžāϰāĻž āĻāύāĻŋāώā§āĻ āĻāĻžāĻŦā§ āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ āĻšāϝāĻŧ, āϤāĻŦā§ āϤāĻžāĻĻā§āϰ āĻāĻāϤā§āϰāĻŋāϤ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, "āĻāĻžāϤā§āϰā§āϰ āĻĒā§āϰā§āĻĢāĻžāĻāϞ⧠āĻĒāϰāĻŋāĻŦāϰā§āϤāύ" āĻŦāϞāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤
ÂŠī¸ Bappa Saha Bapi
Top comments (0)