浅谈设计模式

  • 概念引入:
    • 软件开发分为高层模式、低层模式。
      • 高层模式:体系结构模式(即架构模式):软件体系结构的风格,作为软件设计中的高层决策。
      • 低层模式:设计模式(Design Pattern)。
  • 设计模式:
    • 概念: 是一套被反复使用,多数人知晓的,经过分类编目的,代码设计经验的总结。
    • 目的: 为了提高代码的可重用性,让代码更容易被他人理解,并保证代码的可靠性,编码实现工程化。
    • 优点: 在开发中采用他人成功解决方案,可降低分析、设计、实现的难度,使系统具有更好的可复用性、灵活性。
    • 总结:
      1. 设计模式主要关注软件系统的设计,与具体的实现语言无关。
      2. 设计模式已广泛应用于面向对象系统的设计和开发,成为面向对象领域的一个重要组成部分。
      3. 通过代码模板,实现复用性。
      4. 模式是指从某个具体的形式中得到的一种抽象,在特殊的非任意性的环境中,该形式不断地重复出现。
      5. 不同的模式之间有联系,同时也有各自的优缺点,实际应用时应权衡利弊,达到真正优质的设计模式。

  • 设计模式的组成: 模式名称、问题、解决方案、效果4个基本成分;
    1. 模式名称: 描述一个设计问题、它的解法和效果,通常由一至两个词组成。
    2. 问题: 问题告诉人们什么时候要使用设计模式、解释问题及其背景。问题陈述往往用强制条件集来表示,同时强制条件的详细讨论是问题陈述的重要部分。
    3. 解决方案: 作为描述设计的基本要素:它们的关系、各自的任务以及相互之间的合作;解决方案针对的是抽象化问题;
    4. 效果: 效果描述应用设计模式后的结果和权衡。

  • 设计模式的描述: 参考模板

    1. 模式名称和分类:模式名称和一个简短的摘要。
    2. 目的:描述该设计模式的用处、基本原理、目的、针对问题。
    3. 别称:
    4. 动机:问题的解决方案,以及模式中的类和对象的结构如何解决问题。
    5. 应用:即应用场景。
    6. 结构:用对象模式对本模式的图像表示。
    7. 成分:组成本设计模式的类和对象及它们的职责。
    8. 合作:成分间如何合作实现它们的任务。
    9. 效果:该模式如何支持它的对象
    10. 实现:在实现本模式的过程中,需注意哪些缺陷、线索或者技术;
    11. 例程序代码:说明如何用Java或其他语言来实现该模式的代码段。
    12. 已知的应用:现实中系统中使用该模式的案列。
    13. 相关模式:与本模式相关的一些其他模式,及它们的区别,本模式是否与其他模式混用。

  • 设计模式的分类:
    • 根据目的和用途不同,设计模式分为创建型(Creational)模式、结构式(Structural)模式、行为型(Behavioral)模式三种。
    • 创建型(Creational)模式: 对类的实例化过程进行抽象,使软件模板做到与对象的创建和组织无关。
      • 工厂方法(Factory method):又称为虚拟器构造器(Virtual Constructor)模式或多态模式,属于类的创建型模式。
      • 抽象工厂(Anstract factory):又称为Kit模式。
      • 原型(Prototype)模式:
      • 单例(Singleton)模式:
      • 建造者(Builder)模式:
    • 结构化模式: 将类或对象结合在一起,用于形成更大的结构。
      • 适配器(Adapter)模式:
      • 桥接(Bridge)模式:
      • 组合(Composite)模式:
      • 装饰(Decorator)模式:
      • 外观(Facade)模式:
      • 享元(Flyweight)模式:
      • 代理(Proxy)模式:
    • 行为型模式: 对在不同的对象之间划分责任和算法的抽象化,不仅是关于类和对象,而且关于二者之间的相互作用。
      • 职责链(Chain of Responsiblity)模式:
      • 命令(Command)模式:
      • 解释器(Interpreter)模式:
      • 迭代器(Iterator)模式:
      • 中介者(Mediator)模式:
      • 备忘录(Memento)模式:
      • 观察者(Observer)模式:
      • 状态(State)模式:
      • 策略(Strategy)模式:
      • 模板方法(Template Method)模式:
      • 访问者(Visitor)模式:
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值