1 Star 0 Fork 0

dycimage / DesignPatterns

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

设计模式

免费在线学习代码重构和设计模式 (refactoringguru.cn)

生成各个设计模式的空白文件可以执行此文件

设计模式可以分为

  1. 创建型模式(对已有的代码增加灵活性和复用性)
    1. 工厂方法(Factory Method)
    2. 抽象工厂(Abstract Factory)
    3. 生成器(Builder)
    4. 原型(Prototype)
    5. 单例(Singleton)
  2. 结构性模式 (这类模式介绍如何将对象和类组装成较大的结构, 并同时保持结构的灵活和高效。)
    1. 适配器(Adapter)
    2. 桥接(Bridge)
    3. 组合(Composite)
    4. 装饰(Decorator)
    5. 外观(Facade)
    6. 享元(Flyweight)
    7. 代理(Proxy)
  3. 行为型模式(这类模式负责对象间的高效沟通和职责委派。)
    1. 责任链(Chain of Responsibility)
    2. 命令(Command)
    3. 迭代器(Iterator)
    4. 中介者(Mediator)
    5. 备忘录(Memento)
    6. 观察者(Observer)
    7. 状态(State)
    8. 策略(Strategy)
    9. 模板方法(Tempate Method)
    10. 访问者(Visitor)

创建型模式

工厂方法(Factory Method)

工厂方法模式是一种创建型设计模式, 其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型。

例子:

你有一家运输公司,早期只通过陆地运输,运送范围有限。

后来你想扩大公司业务,不但承接陆上运输,也承接海上运输。

那么是不是应该,路上运输使用汽车,海路运输使用轮船。

如果使用工厂方法,需要找到他们很强的共同属性,即运输功能。

那么工厂便可以通过不同的运输功能进行派出不同的运输工具。

代码

  1. 优点:
  • 你可以避免创建者和具体产品之间的紧密耦合。
  • 单一职责原则。 你可以将产品创建代码放在程序的单一位置, 从而使得代码更容易维护。
  • 开闭原则。 无需更改现有客户端代码, 你就可以在程序中引入新的产品类型。
  1. 缺点:
  • 应用工厂方法模式需要引入许多新的子类, 代码可能会因此变得更复杂。 最好的情况是将该模式引入创建者类的现有层次结构中。
  1. 与其他模式的关系

抽象工厂(Abstract Factory)

生成器(Builder)

原型(Prototype)

单例(Singleton)

结构型模式

行为模式

TODO

  • 代码注释
  • 代码逻辑解释
  • 添加文档解释?
  • 复制粘贴设计模式优缺点
  • 对README进行更清晰的重构

空文件

简介

设计模式的简单例子,配有解释和流程图。参考于:https://refactoringguru.cn/ 展开 收起
Java
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/dycimage/DesignPatterns.git
git@gitee.com:dycimage/DesignPatterns.git
dycimage
DesignPatterns
DesignPatterns
master

搜索帮助