Padrón de deseño

Esquema do padrón de deseño Bridge.

Os padróns de deseño son a base para a procura de solucións a problemas comúns no desenvolvemento de software e outros ámbitos referentes ó deseño de interacción ou interfaces.

Un padrón de deseño é unha solución a un problema de deseño. Para que unha solución sexa considerada un padrón debe posuír certas características. Unha delas é que debeu comprobarse a súa efectividade resolvendo problemas similares en ocasións anteriores. Outra é que debe ser reempregable, o que significa que é aplicable a diferentes problemas de deseño en distintas circunstancias.

Breve apuntamento histórico

En 1979 o arquitecto Christopher Alexander proporcionou ó mundo da arquitectura o libro The Timeless Way of Building; nel propoñía a aprendizaxe e uso dunha serie de padróns para a construción de edificios dunha maior calidade.

En palabras deste autor "cada padrón describe un problema que ocorre infinidade de veces no noso contorno, así como a solución ó mesmo, de tal xeito que podemos utilizar esta solución un millón de veces más adiante sen ter que volver a pensala outra vez".

Os padróns que Christopher Alexander e os seus colegas definiron, publicados nun volume denominado A Pattern Language, son unha tentativa de formalizar e plasmar dun xeito práctico xeracións de coñecemento arquitectónico. Os padróns non son principios abstractos que requiran o seu redescubrimento para obter unha aplicación satisfactoria, nin son específicos a unha situación particular ou cultural; son algo intermedio. Un padrón define unha posible solución correcta para un problema de deseño dentro dun contexto dado, describindo as calidades invariantes de todas as solucións.

Máis tarde, en 1987, Ward Cunningham e Kent Beck empregaron varias ideas de Alexander para desenvolveren cinco padróns de interacción home-ordenador (HCI) e publicaron un artigo en OOPSLA-87 titulado Using Pattern Languages for OO Programs.

Non obstante, non foi ata comezos da década de 1990 cando os padróns de deseño tiveron un gran éxito no mundo da informática a partir da publicación do libro Design Patterns escrito polo grupo Gang of Four (GoF) composto por Erich Gamma, Richard Helm, Ralph Johnson e John Vlisides, no que se recollían 23 padróns de deseño comúns.

Obxectivos dos padróns

Os padróns de deseño pretenden:

  • Proporcionar catálogos de elementos reempregables no deseño de sistemas software.
  • Evitar a reiteración na procura de solucións a problemas xa coñecidos e solucionados con anterioridade.
  • Formalizar un vocabulario común entre deseñadores.
  • Estandarizar o xeito en que se realiza o deseño.
  • Facilitar a aprendizaxe das novas xeracións de deseñadores condensando coñecemento xa existente.

Así mesmo, non pretenden:

  • Impoñer certas alternativas de deseño no canto doutras.
  • Eliminar a creatividade inherente ó proceso de deseño.

Non é obrigatorio empregar os padróns, só é aconsellable no caso de ter o mesmo problema ou similar que soluciona o padrón, sempre tendo en conta que nun caso particular pode non ser aplicable. "Abusar ou forzar o uso dos padróns pode ser un erro".

Categorías de padróns

Segundo a escala ou nivel de abstracción:

  • Padróns de arquitectura: Aqueles que expresan un esquema organizativo estrutural fundamental para sistemas de software.
  • Padróns de deseño: Aqueles que expresan esquemas para definir estruturas de deseño (ou as súas relacións) coas que construír sistemas de software.
  • Dialectos: padróns de baixo nivel específicos para unha linguaxe de programación ou contorno concreto.

Ademais, tamén é importante apuntar o concepto de "antipadrón de deseño", que con forma semellante á dun padrón, tenta previr contra erros comúns de deseño no software. A idea dos antipadróns é dar a coñecer os problemas que carrexan certos deseños moi frecuentes, para tentar evitar que diferentes sistemas acaben unha e outra vez no mesmo final morto por cometer os mesmos erros.

Ademais dos padróns xa vistos, actualmente existen outros padróns como o seguinte:

  • Interacción: Son padróns que nos permiten o deseño de interfaces web.

Estruturais ou modelos de padróns

Para describir un padrón úsanse modelos máis ou menos estandarizados, de xeito que se expresen uniformemente e poidan constituír efectivamente un medio de comunicación uniforme entre deseñadores. Varios autores eminentes nesta área propuxeron modelos lixeiramente distintos, se ben a maioría definen os mesmos conceptos básicos.

O modelo máis común é o empregado precisamente polo GoF e consta dos seguintes apartados:

  • Nome do padrón: nome estándar do padrón polo cal será recoñecido na comunidade (normalmente exprésanse en inglés).
  • Clasificación do padrón: creacional, estrutural ou de comportamento.
  • Intención: ¿Que problema pretende resolver o padrón?
  • Tamén coñecido como: Outros nomes de uso común para o padrón.
  • Motivación: Escenario de exemplo para a aplicación do padrón.
  • Aplicabilidade: Usos comúns e criterios de aplicabilidade do padrón.
  • Estrutura: Diagramas de clases oportunos para describir as clases que interveñen no padrón.
  • Participantes: Enumeración e descrición das entidades abstractas (e os seus roles) que participan no padrón.
  • Colaboracións: Explicación das interrelacións que se dan entre os participantes.
  • Consecuencias: Consecuencias positivas e negativas no deseño derivadas da aplicación do padrón.
  • Implementación: Técnicas ou comentarios oportunos de cara á implementación do padrón.
  • Código de exemplo: Código fonte exemplo de implementación do padrón.
  • Usos coñecidos: Exemplos de sistemas reais que usan o padrón.
  • padróns relacionados: Referencias cruzadas con outros padróns.

Relación de principais padróns GoF (Gang Of Four)

padróns creacionais

  • Object Pool (Conxunto de Obxectos): (Non pertence ós padróns especificados por GoF) Obtéñense obxectos novos a través da clonación. Empregado cando o custo de crear unha clase é maior que o de clonala. Especialmente con obxectos moi complexos. Especifícase un tipo de obxecto a crear e emprégase unha interface do prototipo para xerar un novo obxecto por clonación. O proceso de clonación iníciase instanciando un tipo de obxecto da clase que queremos clonar.
  • Abstract Factory (Fábrica abstracta): Permite traballar con obxectos de distintas familias de xeito que estas non se mesturen entre si e facendo transparente o tipo de familia concreta que se estea empregando.
  • Builder (Construtor virtual): Abstrae o proceso de creación dun obxecto complexo, centralizando dito proceso nun único punto.
  • Factory Method (Método de fabricación): Centraliza nunha clase construtora a creación de obxectos dun subtipo dun tipo determinado, ocultando ó usuario a casuística para elixir o subtipo que crear.
  • Prototype (Prototipo): Crea novos obxectos clonándoos dunha instancia xa existente.
  • Singleton (Instancia única): Garante a existencia dunha única instancia para unha clase e a creación dun mecanismo de acceso global a dita instancia.

padróns estruturais

  • Adapter (Adaptador): Adapta unha interface para que poida ser empregada por unha clase que doutro xeito non podería empregala.
  • Bridge (Ponte): Separa unha abstracción da súa implementación.
  • Composite (Obxecto composto): Permite tratar obxectos compostos coma se se tratase dun simple.
  • Decorator (Envoltorio): Engade funcionalidade a unha clase dinamicamente.
  • Facade (Fachada): Prové dunha interface unificada simple para acceder a unha interface ou grupo de interfaces dun subsistema.
  • Flyweight (Peso lixeiro): Reduce a redundancia cando gran cantidade de obxectos posúen idéntica información.
  • Proxy: Mantén un representante dun obxecto.

padróns de comportamento

  • Chain of Responsibility (Cadea de responsabilidade): Permite establecer a liña que deben levar as mensaxes para que os obxectos realicen a tarefa indicada.
  • Command (Orde): Encapsula unha operación nun obxecto, permitindo executar dita operación sen necesidade de coñecer o contido da mesma.
  • Interpreter (Intérprete): Dada unha linguaxe, define unha gramática para dita linguaxe, así como as ferramentas necesarias para interpretala.
  • Iterator (Iterador): Permite realizar percorridos sobre obxectos compostos independentemente da implementación destes.
  • Mediator (Mediador): Define un obxecto que coordine a comunicación entre obxectos de distintas clases, pero que funcionan como un conxunto.
  • Memento (Recordo): Permite volver a estados anteriores do sistema.
  • Observer (Observador): Define unha dependencia dun-a-moitos entre obxectos, de xeito que cando un obxecto cambie de estado se notifique e actualicen automaticamente tódolos obxectos que dependen del.
  • State (Estado): Permite que un obxecto modifique o seu comportamento cada vez que cambie o seu estado interno.
  • Strategy (Estratexia): Permite dispoñer de varios métodos para resolver un problema e elixir cal empregar en tempo de execución.
  • Template Method (Método modelo): Define nunha operación o esqueleto dun algoritmo, delegando nas subclases algúns dos seus pasos. Isto permite que as subclases redefinan certos pasos dun algoritmo sen cambiar a súa estrutura.
  • Visitor (Visitante): Permite definir novas operacións sobre unha xerarquía de clases sen modificar as clases sobre as que opera.

padróns de interacción

A primeira tentativa por aplicar este concepto no deseño das interfaces de usuario deuse por Ward Cummingham e Kent Beck, que adaptaron a proposta de C. Alexander e crearon cinco padróns de interface: Window per task, Few panes, Standard panes, Nouns and verbs, e Short Menu. En anos máis recentes investigadores como Martin Van Welie, Jennifer Tidwell, Jaime Muñoz desenvolveron coleccións de padróns de interacción para a World Wide Web. En ditas coleccións captan a experiencia de programadores e deseñadores expertos no desenvolvemento de interfaces empregables e condensan esta experiencia nunha serie de guías ou recomendacións, que poidan ser empregadas polos desenvolvedores novatos co propósito de que en pouco tempo adquiran a habilidade de deseñar interfaces que incidan na satisfacción dos usuarios. Os padróns de interacción procuran o reemprego de interfaces eficaces e un manexo óptimo dos recursos das páxinas web, facendo máis eficaz o consumo de tempo no deseño do sitio web e permitindo ós programadores novatos adquirir máis experiencia.

Aplicación en ámbitos concretos

Ademais da súa aplicación directa na construción de software en xeral, e derivado precisamente do gran éxito que tiveron, os padróns de deseño foron aplicados a múltiples ámbitos concretos producíndose "linguaxes de padróns" e extensos "catálogos" da man de diversos autores.

En particular son notorios os esforzos nos seguintes ámbitos:

  • padróns de interfaces de usuario, isto é, aqueles que intentan definir os mellores xeitos de construír interfaces home-máquina (véxase Interacción persoa-computador, Interface gráfica de usuario).
  • padróns para a construción de sistemas empresariais, onde se requiren especiais esforzos en infraestruturas de software e un nivel de abstracción importante para maximizar factores como a escalabilidade ou o mantemento do sistema.
  • padróns para a integración de sistemas (véxase Integración de aplicacións empresariais), é dicir, para a intercomunicación e coordinación de sistemas heteroxéneos.
  • padróns de fluxos de traballo, isto é, para a definición, construción e integración de sistemas abstractos de xestión de fluxos de traballo e procesos con sistemas empresariais. Véxase tamén BPM.

Véxase tamén

Bibliografía

  • Design Patterns. Elements of Reusable Object-Oriented Software - Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides - Addison Wesley (GoF- Gang of Four)
  • A System of Patterns - Buschmann, Meunier, Rohnert, Sommerlad, Stal - Wiley
  • UML y Patrones. Introducción al análisis y diseño orientado a objetos - Larman - Prentice Hall
  • AntiPatterns. Refactoring Software, Architectures and Projects in Crisis - Brown, Malveau, McCormick Mowbray - Wiley
  • Patterns in Java - Mark Grand - Wiley
  • EJB Design Patterns - Floyd Marinescu - Wiley
  • Head First Design Patterns - O'Reilly

Ligazóns externas

Read other articles:

Cette page concerne l'année 1524 du calendrier julien. Pour l'année 1524 av. J.-C., voir 1524 av. J.-C. Chronologies Voyage de Verrazzano.Données clés 1521 1522 1523  1524  1525 1526 1527Décennies :1490 1500 1510  1520  1530 1540 1550Siècles :XIVe XVe  XVIe  XVIIe XVIIIeMillénaires :-Ier Ier  IIe  IIIe Chronologies thématiques Art Architecture, Arts plastiques (Dessin, Gravure, Peinture et Sculpture), Littérature et Musique clas...

 

Prof. Ir.Adang SurahmanM.Sc., Ph.D.Pjs. Rektor ITB 2004-2005 Pejabat Sementara Rektor Institut Teknologi BandungMasa jabatan23 Oktober 2004 – 29 Januari 2005 PendahuluIr. Kusmayanto Kadiman, Ph.D.PenggantiProf. Dr. Ir. Djoko Santoso, M.Sc. Informasi pribadiLahirAdang Surahman7 September 1954 (umur 69)Cimahi, Jawa Barat, IndonesiaKebangsaanIndonesiaAlma materIr./S1 - ITB M.Sc./S2 - Virginia Polytechnic Institute and State University, USA Ph.D./Dr. - Lehigh University, USASuntin...

 

Pesta Hallowe'enHallowe'en Party Berkas:Hallowe'en Party First Edition Cover 1969.jpgIlustrasi edisi Inggris pertamaPengarangAgatha ChristieNegaraBritania RayaBahasaInggrisGenreNovel kejahatanPenerbitCollins Crime ClubTanggal terbitNovember 1969Jenis mediaCetak (sampul keras & sampul kertas)Halaman256 (edisi pertama, sampul keras)Didahului olehBy the Pricking of My Thumbs Diikuti olehPassenger to Frankfurt  Pesta Hallowe'en atau Hallowe'en Party adalah sebuah...

Puteri Indonesia 1992Tanggal31 Oktober 1992[1]TempatJakarta Convention Center, Jakarta[1]Peserta26Finalis/Semifinalis5PemenangIndira Paramarini Sudiro DKI JakartaPersahabatanTantry Relatami Sulawesi Selatan← 19771994 →lbs Puteri Indonesia 1992 adalah kontes Puteri Indonesia yang pertama kali diselenggarakan oleh Mustika Ratu di bawah pimpinan Mooryati Soedibyo setelah sebelumnya diselenggarakan oleh pemerintah sejak tahun 1971. Kontes ini dimena...

 

Untuk orang lain dengan nama yang sama, lihat Laurence Harvey (disambiguasi). Laurence HarveyLaurence Harvey pada 1973,foto buatan Allan WarrenLahirLaruschka Mischa Skikne(1928-10-01)1 Oktober 1928Joniškis, LituaniaMeninggal25 November 1973(1973-11-25) (umur 45)Hampstead, London, InggrisSebab meninggalKanker lambungMakamSanta Barbara Cemetery, Santa Barbara, California, ASNama lainZvi Mosheh SkiknePekerjaanAktorTahun aktif1948–1973Suami/istriMargaret Leighton ​...

 

Summer RaeRae di bulan April 2016Nama lahirDanielle MoinetLahir28 November 1983 (umur 40)[1]Manhasset, New York, Amerika Serikat[2]Tempat tinggalChicago, Illinois, Amerika Serikat[3]Karier gulat profesionalNama ringSummer RaeTinggi5 ft 10 in (1,78 m)[4][5]Berat118 pon (54 kg)Asal dariRaleigh, Carolina Utara[4]Dilatih olehFlorida Championship Wrestling[5]Debut18 Desember 2011[5] Danielle Moinet[5&...

Albatros amsterdam Albatros amsterdam memberi makan anaknya Status konservasi Kritis (IUCN 3.1)[1] Klasifikasi ilmiah Kerajaan: Animalia Filum: Chordata Kelas: Aves Ordo: Procellariiformes Famili: Diomedeidae Genus: Diomedea Spesies: D. amsterdamensis Nama binomial Diomedea amsterdamensisRoux, Jouventin, Mougin, Stahl & Weimerskirch 1983[2] Sinonim Diomedea exulans amsterdamensisRoux, Jouventin, Mougin, Stahl & Weimerskirch 1983[2] Albatros amsterdam...

 

Disambiguazione – Se stai cercando altri significati, vedi Para. Questa voce o sezione sull'argomento Brasile non cita le fonti necessarie o quelle presenti sono insufficienti. Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti. Segui i suggerimenti del progetto di riferimento. Parástato federato(PT) Estado do Pará LocalizzazioneStato Brasile AmministrazioneCapoluogoBelém GovernatoreHelder Barbalho (MDB) d...

 

Shaivite sect founded by Basava in 12th century LingayatismVeerashaivaBasava, 12th-century statesman, philosopher, poet and Lingayat saintFounderBasava (1131–1167 CE)Regions with significant populationsKarnataka15,893,983[note 1][1]Maharashtra6,742,460[note 2][1]Telangana1,500,000[note 3][2]ReligionsHinduism (Shaivism)ScripturesVachana sahitya • Karana Hasuge • Basava purana • Shunyasampadane &...

Bucoliques Folio 6 recto du Virgile romain (Ve siècle), illustration de la 3e bucolique (reproduction électronique de l'original) Auteur Virgile Pays République romaine Genre Poésie pastorale Version originale Langue latin Titre Bucolica Lieu de parution République romaine Date de parution -39 et -37[1],[2] modifier  Les Bucoliques (ou Églogues) sont un recueil du poète latin Virgile, paru en -37[1],[2]. Elles sont composées de dix pièces rédigées en hexamètres dactyliq...

 

此条目序言章节没有充分总结全文内容要点。 (2019年3月21日)请考虑扩充序言,清晰概述条目所有重點。请在条目的讨论页讨论此问题。 哈萨克斯坦總統哈薩克總統旗現任Қасым-Жомарт Кемелұлы Тоқаев卡瑟姆若马尔特·托卡耶夫自2019年3月20日在任任期7年首任努尔苏丹·纳扎尔巴耶夫设立1990年4月24日(哈薩克蘇維埃社會主義共和國總統) 哈萨克斯坦 哈萨克斯坦政府...

 

This article may need to be rewritten to comply with Wikipedia's quality standards. You can help. The talk page may contain suggestions. (June 2022) Application of economic analysis to demography Part of a series onEconomics History Outline Index Branches and classifications Applied Econometrics Heterodox International Micro / Macro Mainstream Mathematical Methodology Political JEL classification codes Concepts, theory and techniques Economic systems Economic growth Market National accounting...

1823 novel by Mary Shelley Title page from the second volume of Valperga Valperga: or, the Life and Adventures of Castruccio, Prince of Lucca is an 1823 historical novel by the Romantic novelist Mary Shelley, set amongst the wars of the Guelphs and Ghibellines (the latter of which she spelt Ghibeline). Publication details Mary Shelley's original title is now the subtitle; Valperga was selected by her father, William Godwin, who edited the work for publication between 1821 and February 1823. ...

 

O: Two jugate heads of Di Penates Publici D · P · P R: Soldiers with spears pointing at lying sow C·SV(LP)ICI·C·F Reverse depicts scene from Aeneid. According to the prophecy, in the place where a white sow casts 30 piglets under an oak tree, a new city shall be built (Lavinium); also, a new city called after the white sow shall be built by Ascanius 30 years later (Alba Longa). Silver serrate denarius struck by C. Sulpicius C. f. Galba in Rome 106 BC. ref.: Sulpicia 1., Sydenham 572., C...

 

Suburb of Kalgoorlie-Boulder, Western AustraliaSouth BoulderKalgoorlie-Boulder, Western AustraliaThe heritage-listed Cornwall Hotel on Hopkins St, South BoulderCoordinates30°47′25″S 121°29′41″E / 30.79019°S 121.49466°E / -30.79019; 121.49466Population1,506 (SAL 2021)[1]Postcode(s)6432Area10.4 km2 (4.0 sq mi)LGA(s)City of Kalgoorlie-BoulderState electorate(s)KalgoorlieFederal division(s)O'Connor Suburbs around South Boulder: Vict...

El Derecho a la vivienda aparece recogido en el artículo 25 de la Declaración Universal de los Derechos Humanos de 1948. Algunas constituciones nacionales también lo recogen. El derecho a una vivienda digna y adecuada es uno de los derechos económicos, sociales y culturales que afectan de manera decisiva a las condiciones de igualdad social.[1]​ El derecho universal a una vivienda, digna y adecuada, como uno de los derechos humanos, aparece recogido en la Declaración Universal de l...

 

International athletics championship eventSenior women's race at the 2009 IAAF World Cross Country ChampionshipsOrganisersIAAFEdition37thDateMarch 28Host cityAmman, Jordan VenueAl Bisharat Golf CourseEvents1Distances8 km – Senior womenParticipation96 athletes from 34 nations← 2008 Edinburgh 2010 Bydgoszcz → The Senior Women Race at the 2009 IAAF World Cross Country Championships was held at the Al Bisharat Golf Course in Amman, Jordan, on March 28, 2009.[1] Reports of th...

 

Community college in Thomasville, Georgia, U.S. Southern Regional Technical CollegeTypeCommunity Technical CollegeEstablishedApril 1, 1947 (1947-April-01)[1]PresidentJim Glass[2]LocationThomasville, Georgia, United StatesCampusMultiple campusesWebsitesouthernregional.edu Southern Regional Technical College is a public community college with its main campus in Thomasville, Georgia. It is part of the Technical College System of Georgia and provides education servi...

Australian soccer player Alex Brosque Brosque playing for Sydney FCPersonal informationFull name Alex Jason BrosqueDate of birth (1983-10-12) 12 October 1983 (age 40)Place of birth Sydney, New South Wales, AustraliaHeight 1.82 m (5 ft 11+1⁄2 in)[1]Position(s) Forward / midfielder[2][3]Youth career Welcome Sports2001 AISSenior career*Years Team Apps (Gls)2001–2004 Marconi Stallions 55 (13)2004–2005 Feyenoord 0 (0)2004–2005 → Westerlo (l...

 

Đừng nhầm lẫn với Gánh hàng rong. Một người bán hàng rong ở Wayanad, Ấn Độ. Người bán hàng rong, hay còn gọi là người bán rong, người bán dạo, là người bán hàng hóa dễ vận chuyển. Người bán hàng rong thường bán những mặt hàng giá rẻ, hàng thủ công mỹ nghệ hoặc đồ ăn. Dù là bán cố định hay lưu động thì họ thường quảng cáo bằng tiếng rao lớn hoặc nhịp điệu đều đều và ...