Qual è l'origine di "Programma su un'interfaccia, non su un'implementazione" - è originato da Design Patterns, 1994, da GoF, o da uno scienziato informatico o da alcuni concetti in informatica in precedenza?
"Il programma per un'interfaccia, non un'implementazione" è un modo succinto di descrivere un processo mediante il quale costruire un software, e questa formulazione è in gran parte attribuita alla Gang of Four.
Tuttavia, il processo che stavano descrivendo ha le sue radici molto prima e deriva da Kent Beck e Ward Cunningham che ha avuto l'idea di utilizzare" linguaggi pattern "(un concetto attribuito a Christopher Alexander , un architetto) per scrivere programmi orientati agli oggetti.
Dai loro OOPSLA -87 talk, " Uso delle lingue di pattern per i programmi orientati agli oggetti ":
We propose a radical shift in the burden of design and implementation, using concepts adapted from the work of Christopher Alexander, an architect and founder of the Center for Environmental Structures. Alexander proposes homes and offices be designed and built by their eventual occupants. These people, he reasons, know best their requirements for a particular structure. We agree, and make the same argument for computer programs. Computer users should write their own programs. The idea sounds foolish when one considers the size and complexity of both buildings and programs, and the years of training for the design professions. Yet Alexander offers a convincing scenario. It revolves around a concept called a "pattern language."
A pattern language guides a designer by providing workable solutions to all of the problems known to arise in the course of design. It is a sequence of bits of knowledge written in a style and arranged in an order which leads a designer to ask (and answer) the right questions at the right time. Alexander encodes these bits of knowledge in written patterns, each sharing the same structure. Each has a statement of a problem, a summary of circumstances creating the problem and, most important, a solution that works in those circumstances. A pattern language collects the patterns for a complete structure, a residential building for example, or an interactive computer program. Within a pattern language, patterns connect to other patterns where decisions made in one influence the others. A written pattern includes these connections as prologue and epilogue. Alexander has shown that nontrivial languages can be organized without cycles in their influence and that this allows the design process to proceed without any need for reversing prior decisions.
Leggi altre domande sui tag object-oriented history