CSC/ECE 517 Fall 2012/ch2b 2w69 as: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 8: Line 8:


== Motivation ==
== Motivation ==
All software systems are subject to change. Thus designing a system which is stable is a very crucial task. When a single change to a program results in a cascade of changes to dependent modules, that program exhibits the undesirable attributes that we have come to associate with “bad”
design. The program becomes fragile, rigid, unpredictable and unreusable. The open-closed principle attacks this in a very straightforward way.


== Description ==
== Description ==

Revision as of 21:54, 16 November 2012

The Open/Closed principle

Introduction

In object-oriented programming the open/closed principle states,

Software entities (Classes, Modules, Functions, etc.)should be open for extension, but closed for modification

Motivation

All software systems are subject to change. Thus designing a system which is stable is a very crucial task. When a single change to a program results in a cascade of changes to dependent modules, that program exhibits the undesirable attributes that we have come to associate with “bad” design. The program becomes fragile, rigid, unpredictable and unreusable. The open-closed principle attacks this in a very straightforward way.

Description

Examples

Conclusion

See Also

References

[1] Open/closed principle

[2] "The Open-Closed Principle", C++ Report, January 1996"

[3] "Patterns in Practice: The Open Closed Principle"