博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式概念总结
阅读量:6951 次
发布时间:2019-06-27

本文共 729 字,大约阅读时间需要 2 分钟。

hot3.png

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

能不用设计模式解决问题就不用设计模式。

##设计原则

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

###策略模式

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

###观察者设计模式

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

###装饰者模式

动态地将责任附加到对象上.想要扩展功能,装饰者提供有别于继承的另一种选择.

InputStream in = new BufferedInputStream(new FileInputStream(file));//

###工厂方法模式

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

###命令模式

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

###适配器模式

实现看似不可能做到的事情.

将两个本来不兼容的模块可以在一起正常工作.

###代理模式

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

转载于:https://my.oschina.net/mercyyang/blog/845696

你可能感兴趣的文章
Python数据分析(二): Numpy技巧 (3/4)
查看>>
Linux中的静态库和动态库简介及生成过程示例
查看>>
python函数式编程-装饰器
查看>>
机器学习重塑供应链管理的10个途径
查看>>
前端:用css打造炫酷3d特效- css3d立方体
查看>>
集成Android SlidingMenu(SlideMenu)
查看>>
使用Cargo入门rust语言
查看>>
hibernate笔记--组合主键映射方法
查看>>
jQuery 前后端分离项目总结
查看>>
Python使用Mysql官方驱动(取出dict类型的数据)
查看>>
数据网格组件 Handsontable 不再开源,采用自拟的非商业许可证
查看>>
PostgreSQL 全文检索 - 词频统计
查看>>
这个“达芬奇”不一般!它是美国医生的好帮手
查看>>
Java中将List转成逗号数组的方案
查看>>
一如此前的回应,王劲将景驰科技总部搬到了广州
查看>>
Docker EE 2.0 版本震撼来袭,全新特性先睹为快(附资源地址)
查看>>
5月上海见-国际产学研专家集结第六届全球云计算大会中国站
查看>>
量子计算会带来什么样的革命?
查看>>
除了停电之外,今年的CES还有这些“意外”……
查看>>
多线程3,线程池封装库
查看>>