In the Beginning... ...there was no inheritance and no composition, only code. And the code was unwieldy, repetitive, blocky, unhappy, verbose, and tired. Copy and Paste were the primary mechanisms of code reuse. Procedures and functions were rare, newfangled gadgets viewed with suspicion. Calling a procedure was expensive! Separating pieces of code from the main logic caused confusion! It was a Dark Time.
Background I've been to a few talks on SOLID before. Most of the principles seem pretty reasonable to me – but I've never "got" the open-closed principle (OCP from here on). At CodeMash this year, I mentioned this to the wonderful Cori Drew, who said that she'd been at a user group talk where she…
In summary, Smalltalk's specification-like coding and incremental development environment permits a unique human-human-machine dialogue. CRC Cards allow larger groups to feel this dialogue which is based on repeated episodes of decision making. Finally, members of somewhat larger production development teams can exploit the human-human-machine dialogue on a pair-wise basis. The complex communication that then takes place will support a High-Performance organization with many benefits, a few of which I have mentioned.
This report was originally written in 1992-1993. Therefore, some of its information is out-of-date. The Object Agency, Inc. believes, however, that the report still provides many useful insights.
there's been a rush of lightweight containers that help to assemble components from different projects into a cohesive application. Underlying these containers is a common pattern to how they perform the wiring
a prototype-based object-oriented programming language based on Self, CLOS, and Smalltalk-80. Slate syntax is intended to be as familiar as possible to a Smalltalker, for the clarity of messages as phrases. Unlike the Smalltalk family, methods within Slat
a new programming language. It extends the ideas behind object-orientation in order to better support modular programming and static type safety. It also incorporates features from functional programming, and puts into practice state-of-the-art results fr
collects and distills successful techniques in planning a reengineering project, reverse-engineering, problem detection, migration strategies and software redesign.
Object and Class Structures,
Type Checking and New Types,
Initializing a New Class,
GtkArg and the Type System,
Object Arguments,
Signals,
Object Finalization,
Attaching Data to Objects
It is possible in Javascript (ECMAScript) to do classical single inheritance nested to any depth, without any caveats.
This article concisely explores the mechanism in depth, including flaws in other approaches, internal Javascript algorithms, proper OOP data encapsulation with default constructors, and an optimized inheritance declaration syntax with both Object and Function prototype convenience methods.
Learn about UML class diagrams and their notations. Your one-stop resource for everything to do with the Unified Modeling Language (UML) from software diagram examples to a comprehensive tutorial.
Old, but very good article on Singleton (and OO) misunderstand/misuse. From my opinion, a second edition (e.g. "Patterns revisited") of the Patterns book is necessary, though it's horrible that Mr. Vlissides has passed away.
M. Stevens, A. Kellens, J. Brichau, и T. D'Hondt. BENEVOL 2007 - 6th BElgian-NEtherlands software eVOLution workshop (Namur, Belgium, December 13-14, 2007), (2007)