前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设计模式的那些事儿-(概要)

设计模式的那些事儿-(概要)

作者头像
ImportSource
发布2018-04-03 16:46:48
7100
发布2018-04-03 16:46:48
举报
文章被收录于专栏:ImportSourceImportSource

相信你看了很多关于设计模式的书籍或文章。里边一定会有咖啡果汁之类或者画圆或矩形的例子,或者其他的我们平时就无法一下子用到的具体场景。

今天我们就来说设计模式在我们常见的开发中如何使用,能解决哪些问题,以及每个设计模式都有哪些适用场景。

什么是设计模式这个问题你可以通过某搜索引擎就可以搜索到。什么GOF啦这些名词相信你早已知道。

但还是先来说说设计模式是什么?

设计模式就是牛人们总结出来的最佳实践。这些模式由于是从长期的代码开发中抽象出来的,所以现有的那二十几个模式基本上就能解决你开发过程中遇到的大部分结构问题、创建问题以及行为问题。

现在我们假定你已经知道设计模式的基本概念了。接下来就来说说设计模式的几个大类。你也许会发现好些设计模式都差不多,都是一个接口啊,抽象类什么的。没错,那是因为他们都同属一族,所以看起来都很像。这里我们可以把同一类的设计模式的集合称为“模式族”(Pattern Family)。

那么设计模式主要有哪几类呢?市面上现在基本把设计模式归纳为三类也有归纳为四类的。(三类或四类或几类都不重要)

这里我们主要以四类为主。

  1. 创建型。(Creational Patterns)
  2. 结构型。(Structural Patterns)
  3. 行为型。(Behavioral Patterns)
  4. J2EE型。 (J2EE Patterns)

首先来说说创建型的事情。创建型这个模式族中的设计模式主要就是用各种姿势来创建对象。这里的创建对象不是再用new来直接创建。更多的是通过反射来创建。至于为什么要这样做,这个问题不是我们今天要讨论的范畴。其实就是为了提供灵活性,不再hard code。可以查查ioc的内容。

然后是结构型。结构模式族里的设计模式主要就是用各种姿势来组合一个个类,你中有我,我中有他。

然后的行为型。行为型主要就是把“很多种情况”的这种场景通过“接口+实现”或通过 “抽象类+实现”的方式来分别实现不同的行为适应不同的场景。

至于这个J2EE型并不是什么正统的模式族。我们之所以在这里提到他,是因为我们开发中经常遇到这些设计模式。这个模式族主要负责解决一些表示层(presentation tier)的事情。而且主要是由Sun Java Center来定义的。

那么每个模式族都有哪些模式呢?接下来为你列出来:

创建型

1. Factory Method(工厂方法)

2. Abstract Factory(抽象工厂)

3. Builder(建造者)

4. Prototype(原型)

5. Singleton(单例)

结构型

6. Adapter Class/Object(适配器)

7. Bridge(桥接)

8. Composite(组合)

9. Decorator(装饰)

10. Facade(外观)

11. Flyweight(享元)

12. Proxy(代理)

行为型

13. Interpreter(解释器)

14. Template Method(模板方法)

15. Chain of Responsibility(责任链)

16. Command(命令)

17. Iterator(迭代器)

18. Mediator(中介者)

19. Memento(备忘录)

20. Observer(观察者)

21. State(状态)

22. Strategy(策略)

23. Visitor(访问者)

j2ee型

1. MVC (mvc)

2. Business Delegate(业务委托)

3. Composite Entity (组合实体)

4. Data Access Object (数据访问对象)

5. Front Controller (前端控制)

6. Intercepting Filter (过滤器模式)

7. Service Locator (服务查询)

8. Transfer Object (转移对象)

以上就是今天的内容,之后我们会详细的讨论以上每一个模式,特别是这些模式的适用场景!

https://github.com/importsource/importsource-patterns

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-04-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ImportSource 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档