设计模式-概念总结-1

语言的选择对设计模式的影响

一些特定的语言的语言特性,决定了哪些设计模式的机制可以方便的实现,哪些很难实现,比如如果采用过程性的语言,则“继承”“封装”“多态”这些面向对象语言固有的特性也需要设计成一种设计模式。总之,对特定的设计模式,有时候用一种语言会比另外一种语言更有优势来表示它



MVC中的设计模式

MVC采用“订阅\通知”协议分离了视图和模型,一旦模型的数据发生变化,就会立即通知相关的视图,从而视图得到刷新自己的通知,这使用了观察者(observer)模式

MVC的一个特征是视图可以嵌套,这是用了组合(composite)模式

MVC的view使用controller子类的实例来实现一个特定的响应策略,这是用了策略(strategy)模式



模式的分类

模式根据目的分为创建型,行为型,结构型
创建型模式与对象的创建有关
行为型模式对类和对象怎么交互和怎么分配职责进行描述
结构型模式处理类和对象的组合


模式根据范围准则可以分为是用于类,还是用于对象

类模式处理类和子类的关系,这些关系通过继承建立,是静态的,也就是说在编译期间就确定下来了

对象模式处理对象之间的关系,这些关系是在运行时可变化的,是动态的,大部分模式是对象模式


创建型类模式讲对象的部分创建工作延迟到子类中,创建型对象莫斯则将它延迟到另一个对象中去

结构型类模式使用继承来组合类,结构型对象模式则描述了对象的组装方式

行为型类模式使用继承俩描述算法和控制流,行为型对象模式则描述一组对象怎么协作完成单个对象所无法完成的任务



什么是类型?

类型是用来表示特定接口的概念,类型与类不同;设计模式中的类型类似Java语言中的“接口”这个概念;一个类可以拥有多个类型;两个类只要有共享的接口,就可以说它们具有相同的类型

当一个类型的接口包含另一个类型的接口时,我们称它是另一个类型的子类型,相应另外一个类型是它的超类型



抽象的重要性

设计的许多对象来源于对现实世界的分析模型,但设计结果所得到的类也许在现实世界中并不存在,比如描述过程和算法的对象在现实世界中并不存在,但它们是设计的关键部分;抽象对于产生灵活的设计非常重要,有些类在分析阶段,甚至在设计阶段的早期都不存在,但是应该在后期为使得设计更加灵活、复用性更好而将其发掘出来
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值