码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式(Design Patterns)

时间:2018-01-07 19:56:55      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:pos   问题   图书馆   类的属性   str   .com   说明   属性   soc   

相识

  这要追溯到大二的时候,刚开始接触设计模式的时候,记得当时不知从谁哪里听说设计模式这个玩意,对我来说这是一个既陌生而又富有神秘感的词汇。

于是,在某天跑到学校的图书馆找寻相关的书籍,在网上百度了一下,听说《大话设计模式》这本书不错,于是乎便拿过来一看究竟,当时也看的也不知所云,

毕竟只是看,没有运用到项目中去;开始只感到这本书写的颇有意思,从小菜的成长过程我也渐渐认识到设计模式的魅力所在。

相知

  大三时候,开了一门专业课程,名字叫做Java设计模式,当时的讲授老师姓马,我们都称他为马老师,人很和蔼。到那时也并未接触到什么实质性的项目,

只是一直在空谈理论知识,大学的课程永远都只是理论多余实践,暂不说这种教学模式孰是孰非,缺乏实践的课堂只能是让人感觉索然无味。不过,因为当时对

设计模式颇感兴趣,所以每每课下,便向老师讯问一些不懂的地方,凭借着这种态度,我也收获了许多课堂之上无法学到的知识,让我一步一步地揭开了设计模式

神秘的面纱。

  从此我便开始慢慢了解一些设计模式上的专有词汇,虽然还是又很多疑问,但是相比开始已经成长了许多。让我最苦恼的当属那些类或者对象之间的关系,可以

说在那是是相当让我头大的事情,从依赖到关联,再从聚合到组合这两组是最容易出错的地方。

  首先谈谈依赖关系

  依赖(Dependency) 关系是类与类之间的联接,一般而言,依赖关系体现为局域变量、方法的形参,或者对静态方法的调用

  关联关系

  关联(Association)关系是类与类之间的联接,它使一个类知道另一个类的属性和方法。关联可以是单向的,也可以是双向的。

  聚合关系

  聚合(Aggregation) 关系是关联关系的一种,是弱的关联关系。聚合是整体和个体之间的关系。

  组合关系

  组合(Composition) 关系是关联关系的一种,是强的关联关系。它要求普通的聚合关系中代表整体的对象负责代表部分对象的生

命周期,组合关系是不能共享的。

  最后说说继承与实现

   继承(inherited):子类可继承抽象类或普通类,抽象类使用关键字abstract表示,JAVA和NET中子类只能继承一个基类,C++可以继承多个基类。

实现(implement):子类可以实现多个接口,接口使用关键字interface表示,接口中不允许有普通成员(也就是常量和变量),NET可以有属性、方

法和事件,而JAVA只能有方法和事件,C++没有接口interface这个关键字,但可以用抽象类代替接口,里面都是纯虚函数。

相熟

  设计模式(Design Patterns) 是由四人组(GOF :Gang of Four)四位作者提出的。《Design Patterns: Elements

of Reusable Object-Oriented Software》(即后述《设计模式》一书),由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides

合著(Addison-Wesley,1995)。这几位作者常被称为"四人组(Gang of Four)",而这本书也就被称为"四人组(或 GoF)"书。

  

  设计模式为什么会出现

  每一种设计模式都说明一个一再出现的问题,并描叙了解决问题的核心。让你能够据以变化,产生出各种各样的招式来解决上万个类似的问题。

  面向对象设计方法强调:以类,对象,继承,组合来作为软件设计分析的方式,故将软件功能拆分为不同的类/组件,之后将这些不同的类与组件

加以组装,对切来最终完成软件的开发。

  怎样拆分,如何设计

  以经验累积的方式,将一些经常用来解决特定情况的“类设计”,”对象组装”加以整理成为一种设计模式。

  

  设计模式能够完成的

  解决一再出现的问题

  解决问题的方案和问题核心的关键点

  可以重复使用的解决方案

 

  

 

设计模式(Design Patterns)

标签:pos   问题   图书馆   类的属性   str   .com   说明   属性   soc   

原文地址:https://www.cnblogs.com/springword/p/8229061.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!