Interfície i ImplementacióCom a humans, estem constantment exposats a fets i les impressions que ens han fet sentir. Per fer això, tenim una estructura abstracta essencial on des de la superfície es detallen i es mostren les relacions fonamentals al treballar. Les abstraccions mostren les causes i els efectes, exposen els patrons i els marcs de treball, i separen el que és important del que no ho és. Són l'arrel de l'enteniment. Per inventar programes, necessites se capaç de capturar les mateixes abstraccions i expressar-les en el disseny del programa. Aquesta és la feina d'un llenguatge de programació per ajudar-te a fer-ho. El llenguatge ha de facilitar-te el procés de creació i disseny per permetre't codificar abstraccions que mostrin la forma en que treballen les coses. Ha de permetre't fer que les teves idees es concretin en el codi que escrius. Els detalls superficials no han d'amagar l'arquitectura del teu programa. Tots els llenguatges de programació proporcionen mecanismes que ajuden a expressar abstraccions. En essencia, aquests mecanismens són formes d'agrupar detalls d'implementació, amagar-los, i donar-los, almenys en algun punt, una interfície comuna -- així com un objecte mecànic separa la seva interfície de la seva implementació, tal com il·lustra la Figura 1-1. Figure 1-1 Interfície i Implementació
Mirant la unitat des de l'interior, com l'implementador, t'has adonat com està format i com treballa. Mirant-lo des de l'exterior, com un usuari, t'has adonat només que fa i com ho fa. Pots repassar els detalls i pensar únicament en termes del rol que la únitat juga a un nivell alt. Les unitats principals d'abstracció en el llenguatge C són les estructures i les funcions. Ambdos, de formes diferents, amaguen l'element de la implementació:
Les estructures i funcinos de C són capaces d'expressar abstraccions significatives, però mantenen la diferència entre dades i operacions sobre dades. En els llenguatges de programació procedimental, les unitats més altes d'abstracció resideixen en un costat o l'altre de la divisió dades-vers-operació. Els programes que dissenyis sempre han de reflexar, en el nivell més alt, la forma com treballa l'ordinador. Els llenguatges de programació orientats a objectes no perden cap de les virtuts de les estructures i les funcions -- ells van un pas més enllà i afegeixen una unitat capaç de fer abstracció a un nivell més alt, una unitat que amaga la interacció entre una funció i la seva informació. Suposa, per exemple, que tens un grup de funcions que actuen en una estructura de dades en particular. Vols fer que aquelles funcions siguin fàcils d'utilitzar per, tant com sigui possible, obtindre l'estructura fora de la interfície. Així, dones unes quantes funcions adicionals per tractar les dades. Tot la feina de manipular les estructures de dades -- assignant-les, inicialitzant-les, obtenint-ne informació, modificant-ne els valors interns, mantenint-lo a l'hora i alliberant-lo -- és fa a través de les funcions. Tot el que l'usuari fa és cridar les funcions i passar'ls-hi l'estructura. Amb aquests canvis, la estructura s'ha transformat en una senyal opaca que els altres programadors mai necessiten mirar-se. Poden concentrar-se en que fan les funcions, no com estan organitzades les dades. Has realitzat el primer pas per crear un objecte. El següent pas és donar a aquesta idea suport al llenguatge de programació i amagar completament l'estructura de dades de manera que no calgui passar-la entre les funcions. Les dades seràn un detall de la implementació interna; tot el que s'exporta als usuaris és una interfície funcional. Com que els objectes encapsulen completament les seves dades (les amaguen), els ususris poden pensar-hi solsament en termes del seu comportament. Amb aquest pas, la interfície a les funcions han estat molt més simples. Els que els criden no necessiten coneixer com estan implementades (quines dades utilitzen). Ara ja es pot cridar a això un "objecte". L'estructura de dades oculta, uneix totes les funcions que hi comparteixen l'accés. Així, un objecte es més que una colecció de funcions aleatories; és un feix de comportaments que suporten unes dades compartides. Per utilitzar una funció que pertany a un objecte, primer crees l'objecte (que li dona la seva estructura interna de dades), llavors li dius a l'objecte quina funció ha d'executar. Comença a pensar en termes de que fa l'objecte, més que en termes de funcions individuals. Aquesta progressió de pensar en funcions i estructures de dades a pensar en comportaments dels objectes és la essencia de l'aprenentatge de la programació orientada a objectes. Pot semblar poc familiar al principi, però a mida que agafis experiènciia amb la programació orientada a objectes, trobaràs que és una forma més natural de pensar les coses. Cada dia la terminologia de programació està plena d'analogies dels objectes del món real de varis tipus -- llistes, contenidors, taules, controladors, gestors d'events. Implementant aquestes coses així com programant objectes simplement extens l'analogia de forma natural. Un llenguatge de programació pot jutjar-se pels tipus d'abstraccions que et permet codificar. No hauries de distreure't per asumptes extranys o esforçar-te per expressar-te utilitzant un vocabulari que no equival a la realitat que estàs intentant capturar. Si, per exemple, sempre tens tendència a mantindre les dades correctes amb els procediments correctes, estàs forçat en tot moment a coneixer el programa sencer a baix nivell d'implementació. Mentre encara podries estar creant programes en un alt nivell d'abstracció, el camí des de la imaginació a la implementació pot arribar a ser una mica poc convincent -- i més i més difícils a mida que els programes es fan més grans i més complicats. Per proporcionar un nivel d'abstracció més alt, els llenguatges de programació orientats a objectes et donen un vocabulari extens i un model més ric per programar-hi. per Carles el 31/07/2004 - 21:16, actualitzat el 21/10/2004 - 11:47 | versió per a imprimir | entreu o registreu-vos per a enviar comentaris
|
apadrinamentsAjuda a fer crèixer la barra verda amb les teves donacions!
61% (190,0 de 314,0€) 47% (545,0 de 1.170,0€) 33% (528,0 de 1.610,0€) 63% (38.010,0 de 60.000,0€) 61% (700,0 de 1.155,0€) comesfa.orgel teu usuariopcionsQui està en líniaAra hi han 4 usuaris i 343 convidats connectats.
Usuaris connectats:
és populard'avui... |