Content deleted Content added
m Reverted 1 edit by 197.184.169.61 (talk) to last revision by Citation bot |
Ryan Behrend (talk | contribs) I added details about the GRASP Principles |
||
Line 319:
* [[Dependency inversion principle]]: Depend upon abstractions, not concretes.
[[GRASP (object-oriented design)|GRASP]] (General Responsibility Assignment Software Patterns) is another set of software design rules, created by [[Craig Larman]], that helps developers assign responsibilities to different parts of a program:<ref>{{Cite web |last=Karsh |first=Patrick |date=Jul 19, 2023 |title=GRASP Principles: Object-Oriented Design Patterns |url=https://patrickkarsh.medium.com/object-oriented-design-with-grasp-principles-8049fa63e52 |url-status=live |access-date=Mar 30, 2025 |website=Medium}}</ref>
* Creator Principle: allows classes create objects they closely use.
* Information Expert Principle: assigns tasks to classes with the needed information.
* Low Coupling Principle: reduces class dependencies to improve flexibility and maintainability.
* High Cohesion Principle: designing classes with a single, focused responsibility.
* Controller Principle: assigns system operations to separate classes that manage flow and interactions.
* Polymorphism: allows different classes to be used through a common interface, promoting flexibility and reuse.
* Pure Fabrication Principle: create helper classes to improve design, boost cohesion, and reduce coupling.
==Formal semantics==
|