软件设计模式体系结构笔记

软件设计模式体系结构概述笔记

  • 1.1软件体系结构引言
    • 1.1.1软件危机的表现
    • 1.1.2软件危机的原因
    • 1.1.3解决方法
    • 1.1.4软件系统容易出现的缺点
    • 1.1.5实现软件复用的方式
      • 软件体系结构:
  • 1.2设计模式以及遵循原则
    • 1.2.1模式(Pattern)
      • 1.2.1.1模式的定义
    • 1.2.2 软件设计模式
    • 1.2.3 设计模式要坚持原则

1.1软件体系结构引言

1.1.1软件危机的表现

(1)软件成本日益增长 (成本)
(2)开发进度难以控制 (进度)
(3)软件质量差 (质量)
(4)软件维护困难 (维护)

1.1.2软件危机的原因

(1)用户需求不明确 (用户需求)
(2)缺乏正确的理论指导 (理论指导)
(3)软件规模越来越大 (规模)
(4)软件复杂度越来越高 (复杂度)

1.1.3解决方法

(1)技术
(2)代码重用
(3)软件管理
(4)工程管理模式

1.1.4软件系统容易出现的缺点

缺点 性质
僵硬 可扩展性
脆弱 灵活性
复用率低 可复用性
黏度高 可插入性

1.1.5实现软件复用的方式

(1)高级语言
(2)设计与代码挖掘
(3)源代码构件
(4)软件模式
(5)应用系统生成器
(6)软件体系结构

软件体系结构:

亦称软件架构,其是软件的高层结构,是有关软件整体结构的组件的抽象描述,用于指导大型软件系统设计,可以说软件体系结构设计的好坏决定了整个软件开发项目的成败。优秀的软件体系结构应该在具有可扩展性、可复用性、可维护性、可靠性、安全性、可伸缩性。

1.2设计模式以及遵循原则

1.2.1模式(Pattern)

1.2.1.1模式的定义

一个围棋下得好的人知道,好的“形”对于围棋非常重要,形是棋子在棋盘上的几何形状的抽象化。形就是模式,也是人脑把握和认识外界的关键。
我们处理大量问题时,在很多不同的问题中重复出现的一种性质,他使得我们可以使用一种方法来描述问题实质并用本质上相同,但细节永远不会重复的方法去解决,这种性质就叫模式
成为模式的条件:

  1. 可以解决问题
  2. 解决方案正确
  3. 设计软件系统深层结构
  4. 满足人的审美

1.2.2 软件设计模式

软件设计模式,又称设计模式,是一套被反复使用、多数人知晓的、经过分类编写的、代码设计经验的总结。

  1. 设计模式的四种基本要素
    (1)模式名称
    (2)问题
    (3)解决方案
    (4)效果
  2. 设计模式的分类
    (1)创建(立)型
    (2)结构型
    (3)行为型
    创建(立)型模式:类在实例化时使用的模式。当一些系统在创立对象时,需要动态地决定怎样创立对象,创立哪些对象。
    结构型模式:描述类和对象怎样结合在一起成为较大的结构。结构型模式描述两种类型:类和类的实例
    行为模式:设计到算法和对象职责间的分配。行为模式不仅是关于类和对象的,而且还描述它们之间的作用。这些模式刻画了运行时刻难以跟踪的复杂的控制流,它帮助软件设计者在设计软件的时候吧注意力从控制流转移到对象间的联系上。
Column 1 创建型 结构型 行为型
工厂方法(Factory Method) 适配器(Adapter) 1. 解释器(Interpreter)2.模板方法(Template Method)
对象 1. 抽象工厂(Abstract Factory) 2.生成器(Builder)3.原型(Prototype)4.单态(Singleton) 1. 桥接(Bridge)2.组成(Composite)3. 装饰(Decorator)4.外观(Facade)5.享元(Flyweight)6.代理(Proxy) 1. 职责链(Chain of Responsibility)2.命令(Command)3.迭代器(Iterator)4.中介者(Mediator)5.备忘录(Memento)6.观察者(Observer)7.状态(State)8.策略(Strategy)9.访问者(Visitor)

1.2.3 设计模式要坚持原则

  1. 单一职责原则(Single Responsibility Principles)
  2. “开-闭”原则(Open-Closed Principles, OCP)
  3. 里氏替换原则(Liskov Substitution Principles, LSP)
  4. 依赖倒转原则(Dependency Inversion Principles, DIP)
  5. 接口隔离原则(Interface Segregation Principles, ISP)
  6. 迪米特法则(Law of Demeter, LoD)
  7. 组合/聚合复用原则(Composition/Aggregation Principles, CARP)

你可能感兴趣的:(设计模式)