文档章节

设计模式概念总结

Mercy_丶
 Mercy_丶
发布于 2017/02/24 16:30
字数 527
阅读 8
收藏 1

模式: 在某种情境瞎,针对某问题的解决方案。(重复出现的问题和可复用的解决方案)
能不用设计模式解决问题就不用设计模式。

##设计原则

  1. 最少知识原则。
  1. 使用设计模式时需要看具体的情况而定,能用设计原则解决的问题就不用模式,不要为了使用模式而使用模式。
  2. 封装变化。
  3. 多用组合,少用继承。
  4. 针对接口编程,不针对实现编程。
  5. 为交互对象之间的松耦合而努力。
  6. 类应该对扩展开放对修改关闭。
  7. 依赖抽象,不要依赖具体类。
  8. 之和朋友交谈。
  9. 不要找我,我会找你。
  10. 类应该只有一个改变的理由。

###策略模式

定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户.

###观察者设计模式

定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖这都会收到通知并自动更新.

###装饰者模式

动态地将责任附加到对象上.想要扩展功能,装饰者提供有别于继承的另一种选择.
InputStream in = new BufferedInputStream(new FileInputStream(file));//

###工厂方法模式

定义了一个创建对象的接口,但由子类决定要实例化的是哪一个.工厂方法让类把实例化推迟到子类.

###命令模式

将请求封装成对象,这可以让你使用不同的请求,队列或者日志请求来参数化其他对象.命令模式也可以支持撤销操作.

###适配器模式

实现看似不可能做到的事情.
将两个本来不兼容的模块可以在一起正常工作.

###代理模式

为另一个对象提供一个替身或者站位符一访问这个对象。以便控制客户对对象的访问。

© 著作权归作者所有

共有 人打赏支持
Mercy_丶
粉丝 8
博文 39
码字总数 15485
作品 0
私信 提问
设计模式已经陨落了?

你现在是坐在一个程序员旁边吗?如果是的话,那么在你读下面的段落之前,有一个简单的实验。让他们到一边去,问问他们两个问题并记录下答案。首先问他们“什么是设计模式?”然后再问“说出你...

oschina
2014/03/11
9.1K
69
《JavaScript设计模式与开发实践》原则篇(2)—— 最少知识原则

最少知识原则(LKP)说的是一个软件实体应当尽可能少地与其他实体发生相互作用。这 里的软件实体是一个广义的概念,不仅包括对象,还包括系统、类、模块、函数、变量等。 单一职责原则指导我们...

嗨呀豆豆呢
2018/12/30
0
0
设计模式知识梳理(1) - 结构型 - 适配器模式

一、基本概念 1.1 定义 适配器模式 将 某个类的接口 转换成 客户端期望的另一个接口 来表示,让原本因接口不能一起工作的两个类可以协同工作。 经典的适配器模式 可以分为下面三类: 类 的适...

泽毛
2018/06/24
0
0
设计模式系列(一)——策略模式

概念: 策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。(维基百科) 理解概念: 概念中说策略模式是某个行为在不同场景下有不同的实现算法...

江戸川
2018/07/08
0
0
23种设计模式(3):抽象工厂模式

定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。 类型:创建类模式 类图: 抽象工厂模式与工厂方法模式的区别 抽象工厂模式是工厂方法模式的升级版本,他用来...

LCZ777
2014/07/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

rabbitMQ 在spring 的使用

一、准备工作 maven依赖 <dependency>  <groupId>com.rabbitmq</groupId>  <artifactId>amqp-client</artifactId>  <version>4.0.2</version></dependency> <dependency......

狼王黄师傅
昨天
1
0
Android JNI总结

0x01 JNI介绍 JNI是Java Native Interface的缩写,JNI不是Android专有的东西,它是从Java继承而来,但是在Android中,JNI的作用和重要性大大增强。 JNI在Android中起着连接Java和C/C++层的作...

天王盖地虎626
昨天
1
0
大数据教程(11.8)Hive1.2.2简介&初体验

上一篇文章分析了Hive1.2.2的安装,本节博主将分享Hive的体验&Hive服务端和客户端的使用方法。 一、Hive与hadoop直接的关系 Hive利用HDFS存储数据,利用MapReduce查询数据。 二、Hive与传统数...

em_aaron
昨天
3
0
跟我学Spring Cloud(Finchley版)-15-Hystrix监控详解

Hystrix提供了监控Hystrix Command的能力,本节来详细探讨。 监控端点与数据 应用整合Hystrix,同时应用包含spring-boot-starter-actuator 依赖,就会存在一个/actuator/hystrix.stream 端点...

周立_ITMuch
昨天
6
0
day26:shell题

1、 判断当前主机的CPU生产商,其信息在/proc/cpuinfo文件中vendor id一行中。 如果其生产商为AuthenticAMD,就显示其为AMD公司; 如果其生产商为GenuineIntel,就显示其为Intel公司; 否则,...

芬野de博客
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部