Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Software framework
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Comparison to libraries == Software frameworks differ from standard [[Library (computing)|libraries]] in key ways: * [[Inversion of control|''Inversion of control'']]: Unlike libraries, where user code controls the program’s [[Control flow|flow of execution]], frameworks dictate the program’s structure, calling user code at specific points (e.g., through predefined templates or [[Hook (computer programming)|hooks]]). This is usually achieved with the [[Template method pattern|Template Method Pattern]]. * ''Default behaviour'': Frameworks provide pre-implemented functionality (e.g., standard features or workflows) that works out-of-the-box and can be used as-is or lightly customized, often within a predefined structure. Libraries, by contrast, require user code to build and configure functionality from scratch. A framework's default behavior can be provided with the invariant methods of the [[Template method pattern|Template Method Pattern]] in an abstract class. * ''[[Extensibility]]'': Frameworks enable developers to add new functionality or significantly modify (or override) behavior through structured mechanisms like hooks or [[Application programming interface|APIs]]. Libraries allow extensibility, but it is unstructured, relying on user code to integrate functions without predefined integration points. A framework's extensibility is usually achieved by a hook method in a subclass that overrides a template method in the superclass * ''[[Open/closed principle|Non-modifiable framework code]]:'' Framework core code is generally fixed, accepting user extensions (e.g., plugins or subclasses) without allowing modifications to the framework itself.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)