分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net

所谓设计模式,就是一套被反复使用的代码设计经验的总结(情境中一个问题经过证实的一个解决方案)。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式使人们可以更加简单方便的复用成功的设计和体系结构。将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。
在GoF的《Design Patterns: Elements of Reusable Object-Oriented Software》中给出了三类(创建型[对类的实例化过程的抽象化]、结构型[描述如何将类或对象结合在一起形成更大的结构]、行为型[对在不同的对象之间划分责任和算法的抽象化])共23种设计模式,包括:

创建型:Abstract Factory(抽象工厂模式),Builder(建造者模式),Factory Method(工厂方法模式),Prototype(原始模型模式),Singleton(单例模式);

结构型:Facade(门面模式),Adapter(适配器模式),Bridge(桥梁模式),Composite(合成模式),Decorator(装饰模式),Flyweight(享元模式),Proxy(代理模式);

行为型:Command(命令模式),Interpreter(解释器模式),Visitor(访问者模式),Iterator(迭代模式),Mediator(调停者模式),Memento(备忘录模式),Observer(观察者模式),State(状态模式),Strategy(策略模式),Template Method(模板方法模式), Chain Of Responsibility(责任链模式)。

例如:
- 工厂模式:工厂类可以根据条件生成不同的子类实例,这些子类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作(多态方法)。当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。

- 代理模式:给一个对象提供一个代理对象,并由代理对象控制原对象的引用。实际开发中,按照使用目的的不同,代理可以分为:远程代理、虚拟代理、保护代理、Cache代理、防火墙代理、同步化代理、智能引用代理等。

- 适配器模式:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起使用的类能够一起工作。

- 模板方法模式:提供一个抽象类,将部分逻辑以具体方法或构造器的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法(多态实现),从而实现不同的业务逻辑。

Java - 简述一下你了解的设计模式。相关推荐

  1. 【Java架构师面试题】设计模式面试专题(共35题含答案)

    设计模式(DesignPattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路.它不是语法规定,而是一套用来提高代码可复用性.可维护性.可读性.稳健性以及安全性的解决方案. 本篇为设计 ...

  2. 【Java架构师面试题】设计模式面试专题,linux视频教程下载

    6.简述什么是单例模式,以及他解决的问题,应用的环境,解决的方案,模式的本质 在任何时间内只有一个类实例存在的模式,需要有一个从中进行全局访问和维护某种类型数据的区域的环境下使用单例模式,解决方案就是 ...

  3. Java八股——异常、网络、设计模式

    目录 异常 74. throw 和 throws 的区别? 75. final.finally.finalize 有什么区别? 76. try-catch-finally 中哪个部分可以省略? 77. ...

  4. java基础(六)多线程/设计模式

    这辈子没办法做太多事情,所以每一件都要做到精彩绝伦! People can't do too many things in my life,so everything will be wonderfu ...

  5. 基于java平台和运用5种设计模式的五子棋游戏

    软件设计模式--基于java平台和运用5种设计模式的五子棋游戏 点击链接查看文档代码 二.设计要求 仿照教材上面围棋软件的设计思路,设计一款五子棋,采用至少5种设计模式. 三.引言 五子棋相传起源于四 ...

  6. Java神秘的抽象类,模板设计模式

    Java神秘的抽象类,模板设计模式 1.概述 2.基本使用 3.一些细节 4.抽象类的最佳实践 - 模板设计模式 1.概述 抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充. 一 ...

  7. 北邮JAVA高级语言程序设计(选修课)设计模式大作业

    北邮JAVA高级语言程序设计(选修课)设计模式大作业 题目描述: 设计模式一(单子.工厂.策略模式)练习 1. 假设现在要设计一个贩卖各类书籍的电子商务网站的购物车系统.对所有的教材类图书 实行每本一 ...

  8. Java开发中的23种设计模式详解(转)

    设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  9. 对于java程序语言的单例设计模式讲解

    1.设计模式:解决某一类问题最行之有效的方法.(java中有23种通用设计模式) 单例设计模式:解决一个类在内存中只存在一个对象. 2.单例设计模式有两种方式: 1)饿汉式 先初始化对象.当类一进内存 ...

最新文章

  1. c语言330转化成字符,c语言同步练习(330份).doc
  2. 用标号跳出当前多重嵌套循环是否继续执行循环_4、在JAVA中如何跳出当前的多重嵌套循环?-Java面试题答案...
  3. Python Django 一对多之插入多条数据示例
  4. ios 后台下载,断点续传总结
  5. matlab GUI 设计 自学笔记
  6. 用这10个小技巧加速Python编程
  7. SQL:JOIN ON
  8. C#基础概念二十五问[转]
  9. Vue:返回上一个路由
  10. IOS 杂笔-14(被人遗忘的owner)
  11. [html] 回到页首
  12. 怎么学单片机,怎么入门
  13. 河北省农村居民家庭平均每百户家用计算机拥有量,2013-2015年全国居民家庭平均每百户计算机拥有量统计...
  14. 传输层协议、应用层协议
  15. 我的中国“芯”——资深后端工程师成长分享——“胡”说IC工程师完美进阶
  16. FSA-Net 模型运行——代码调试
  17. 对与、或、非、异或、或非、与非的理解和记忆
  18. 4399测试工程师笔试题
  19. UltralSo制作u盘映像,出现“设备忙,请关闭其他应用程序”的处理方法。
  20. 赚多多V10自动抢单系统源码_派单连单管理新增设置订单佣金

热门文章

  1. html5 360 重力 感应,H5案例分享:html5重力感应事件
  2. 欢聚时代2015校招 一面
  3. Atomsk孪晶多晶建模方法
  4. WSAStartup简要说明
  5. 华科计算机博士公寓宿舍,这次让你看看华科真正的豪华版宿舍!2.0(同济篇)...
  6. YOLOv5改进Neck结构|首发最新原创:改进设计 Eff-QAFPN 结构,具有量化感知神经网络设计的高效网络结构 ,该网络结构表现强势
  7. 针对商业模式的七伤拳
  8. gRPC 学习笔记
  9. 中亿丰数字前后端接口请求说明书
  10. 从价格战管窥导购网站之生存现状