设计模式学习笔记:开篇

 

         最近开始接触设计模式,选择了《设计模式:可复用面向对象编程技术》这本书籍,个人感觉名副其实,有经典的范味儿。现将开篇的笔记整理如下,纯属初学者的个人理解,欢迎指正。

        1)什么是设计模式?

        设计模式描述了系统设计中发生的各种问题以及针对这些问题的解决方案的核心。

        设计模式通常有四个要素:模式名称、问题、解决方案、效果。

        模式名称:一个名称而已(但一个合适名称的确定也不容易),用一两个词描述设计模式的问题、解决方案和效果;

        问题:描述设计模式在何时使用,解释了设计问题本身和问题发生的前因后果;

        解决方案:描述了设计问题该如何解决,具体而言描述了设计的组成部分,以及它们之间的相互关系和协作;

        效果:描述了模式应用的效果以及应权衡的问题。

        2)案例Smalltalk MVC中的设计模式

        MVC(Model/View/Controller)包括三类对象:模型Model是应用对象,视图View是屏幕上的显示,控制器Controller定义用户界面对用户输入的相应方式。

        MVC使用“订购/通知”协议分离模型和视图,视图必须保证它的显示正确反映了模型的状态。一旦模型的数据发生变化,它将通知有关视图,使每个视图刷新数据。

        Smalltalk MVC使用多种设计模式协同工作,但MVC的主要关系Observer,Composite和Strategy三种设计模式给出。

        3)设计模式分类

        设计模式分类通常有两个准则:目标准则和范围准则。

        按目标准则可分为创建型(Creational)、结构型(Structural)和行为型(Behavioral)。创建型模式与对象的创建有关,结构型模式用于类和对象的组合,行为型模式对类或对象的交互以及职责分配进行描述。

        按范围准则(即模式作用于类还是对象)可分为类模式和对象模式。类模式集中处理类和子类之间的关系,主要通过继承机制,是静态的,通常在编译时确定。对象模式处理对象间的关系,这些关系在运行时是可以变化的(通过多态机制),更具动态性。

        4)设计模式准则

        针对接口编程,而不是针对实现编程是设计模式遵循的原则(这一原则常称为依赖倒转原则)。

        什么是针对接口而不针对实现:简单来讲,就是不将变量声明为某个具体类的对象,而是让它遵循从抽象类定义的接口(接口:类中定义的操作型构(签名)的集合)。

        该原则的优点:1]客户无需知道他们使用对象的特定类型,只需对象有客户所期望的接口;2]客户无需知道他们使用多个对象使用什么类来实现,只需知道定义接口的抽象类;3]极大减少子系统之间的依赖关系(降低耦合,软件系统设计原则之一:高内聚低耦合)。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值