`
feohoo
  • 浏览: 112661 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JAVA 23设计模式一点就通

阅读更多
一、创建型模式

  FACTORY?人才市场:以往是要哪个人才,就找哪个人才,效率低,现在有了人才市场,我们只需直接去人才市场挑一个好了;

  BUILDER?生产流水线:以前是手工业作坊式的人工单个单个的生产零件然后一步一步组装做,好比有了工业革命,现在都由生产流水线代替了。如要造丰田汽车,先制定汽车的构造如由车胎、方向盘、发动机组成。再以此构造标准生产丰田汽车的车胎、方向盘、发动机。然后进行组装。最后得到丰田汽车;

  PROTOTYPE?印刷术的发明:以前只能临贴才能保持和别人的字迹基本相同,直从印刷技术发明,从而保证了复制得和原物一模一样;

  SINGLETON?唯一:以前是商标满天飞,相同的商标难免造成侵权,直从有商标保护法后,就保证了不会再产生第家企业使用相同的商标;


  二、结构型模式

  ADAPTER?集众人之私,成一己之公:武当派张三丰会太极拳,少林派智空大师会金刚般若掌,如果他们两个都成为我的师傅,我就既会太极拳,又会金刚般若掌了;

  DECORATOR?青出于蓝而胜于蓝:武当派张三丰会太极拳,是我师傅,他教会了我太极拳,但我自己还会点蒙古式摔交,张三丰却不会。于是我就成了DECORATOR模式的实现;

  BRIDGE?白马非马:马之颜色有黑白,马之性别有公母。我们说"这是马"太抽象,说"这是黑色的公马"又太死板,只有将颜色与性别和马动态组合,"这是(黑色的或白色的)(公或母)马"才显得灵活而飘逸,如此bridge模式精髓得矣。

  COMPOSITE?大家族:子又生孙,孙又生子,子子孙孙,无穷尽也,将众多纷杂的人口组织成一个按辈分排列的大家族即是此模式的实现;

  FACADE?求同存异:高中毕业需读初中和高中,博士也需读初中和高中,因此国家将初中和高中普及成九年制义务教育;

  FLYWEIGHT?一劳永逸:认识三千汉字,可以应付日常读书与写字,可见头脑中存在这个汉字库的重要;

  PROXY?垂帘听政:犹如清朝康熙年间的四大府臣,很多权利不在皇帝手里,必须通过辅佐大臣去办;

  三、行为模式

  CHAIN OF RESPONSIBLEITY?租房:以前为了找房到处打听,效率低且找不到好的房源。现在有了房屋中介,于是向房屋中介提出租房请求,中介提供一个合适的房源,满意则不再请求,不满意继续看房,直到满意为止;

  COMMAND?借刀杀人:以前是想杀谁就杀,但一段时间后领悟到,长此以往必将结仇太多,于是假手他人,挑拨他人之间的关系从而达到自己的目的;

  INTERPRETER?文言文注释:一段文言文,将它翻译成白话文;

  ITERATOR?赶尽杀绝:一个一个的搜索,绝不放掉一个;

  MEDIATOR?三角债:本来千头万绪的债务关系,忽出来一中介,包揽其一切,于是三角关系变成了独立的三方找第四方中介的关系;

  MEMENTO?有福同享:我有多少,你就有多少;

  OBSERVER?看守者:一旦被看守者有什么异常情况,定会及时做出反应;

  STATE?进出自由:如一扇门,能进能出,如果有很多人随时进进出出必定显得杂乱而安全,如今设一保安限制其进出,如此各人进出才显得规范;

  STRATEGY?久病成良医:如人生病可以有各种症状,但经过长期摸索,就可以总结出感冒、肺病、肝炎等几种;

  TEMPLATE METHOD?理论不一定要实践:教练的学生会游泳就行了,至于教练会不会则无关紧要;

  VISITOR?依法治罪:因张三杀人要被处死,李四偷窃要被罚款。由此势必制定处罚制度,故制定法律写明杀人、放火、偷窃等罪要受什么处罚,经通过后须变动要小。今后有人犯罪不管是谁,按共条例处罚即是,这就是访问者模式诞生的全过程。
分享到:
评论

相关推荐

    大道至简-Java之23种模式一点就通

    ### 大道至简—Java之23种设计模式一点就通 在软件工程与程序设计领域中,设计模式作为一种经过验证的解决方案被广泛应用。本文将深入探讨23种Java设计模式中的几个核心概念,帮助读者更好地理解这些模式背后的原理...

    Java 23 种设计模式一点就通.docx

    Java中的23种设计模式分为三大类:创建型模式、结构型模式和行为型模式。 1. **创建型模式**: - **工厂模式(Factory)**:提供一个接口来创建对象,而不用指定具体类,使得代码更加灵活,易于扩展。 - **建造者...

    设计模式一点通之单态模式

    在软件工程中,当一个类只能有一个实例而且客户可以从一个众所周知的访问点访问它时,这样的设计模式就非常有用。单态模式常常用于控制资源的共享,比如线程池、数据库连接池等。 单态模式的核心思想在于限制类的...

    java IO类学习一点通

    Java IO 类的学习不仅仅是理解和掌握这些类的使用,更重要的是了解其背后的原理和设计模式。通过练习和实践,开发者能够灵活运用这些工具,解决实际的输入输出问题。对于初学者,可以从简单的文件读写开始,逐步接触...

    java面试题(100道)

    Java作为一门广泛使用的编程语言,其面试题涵盖了众多的知识领域,包括基础语法、面向对象、集合框架、多线程、异常处理、IO流、网络编程、设计模式、JVM内存模型以及框架应用等。以下是对这100道Java面试题可能涉及...

    最近5年133个Java面试问题列表

    - **基础知识:** 设计模式是一套已经被验证的解决方案,用来解决在软件设计过程中经常出现的问题。常见的设计模式包括工厂模式、单例模式、观察者模式、适配器模式等。这些模式可以帮助开发者写出更加灵活、可扩展...

    基于Java的实例开发源码-ftp简易服务器.zip

    Java的`java.lang.Thread`类或`java.util.concurrent`包中的线程池可以帮助我们实现这一点。 文件操作部分,Java的`java.io.File`类提供了丰富的文件和目录操作API,包括读取、写入、创建、删除等。对于FTP服务器来...

    最全的java面试题

    9. **设计模式** - 单例模式:懒汉式、饿汉式、双重检查锁定等实现方式。 - 工厂模式:简单工厂、工厂方法和抽象工厂。 - 适配器模式:接口适配和类适配。 - 观察者模式:发布-订阅模型。 10. **JVM** - 类...

    jive.chm

    1 jive设计思路 2 jive的工作内幕 3 Jive源代码研究 4 Jive中的设计模式 5 jive学习笔记 <br> 设计模式 1 大道至简-Java之23种模式一点就通 2 设计模式宝典 <br> ...

    SocketServer.rar

    在Java中,通常通过`java.net.ServerSocket`类的非阻塞模式实现这一点,或者使用`java.nio`包中的选择器(Selector)来监听多个套接字通道。 4. **多线程处理**: 在SocketServer中,为了同时处理多个客户端连接,...

    Clean Code英文原版书

    这本书一点就通**:这段描述旨在向读者传达本书的核心价值——教会读者如何遵循一套明确的准则来编写更规范、更易于理解的代码。它暗示通过阅读本书,开发者能够快速掌握编写清晰代码的方法论。 #### 知识点概览 1....

    MOSFET drive

    为了实现这一点,通常需要采用额外的电路设计来隔离栅极驱动信号。 - **设计方案**: - 使用隔离变压器或光耦合器进行电气隔离。 - 设计专用的偏置电路来提供正确的栅极驱动电压。 - 采取措施减少寄生元件的影响...

    Pb.rar_画图板

    描述中的信息进一步证实了这一点,它详细说明了这个Java实现的画图板具有以下功能: 1. **画直线**:用户可以通过鼠标点击并拖动来绘制直线,这通常涉及到监听鼠标事件,计算两点之间的距离并绘制线段。 2. **画圆形...

    CommonServer

    4. **设计模式**:为了实现可扩展性和维护性,服务端程序通常会运用各种设计模式,如工厂模式、单例模式、观察者模式等,以提高代码的复用性和结构的合理性。 5. **框架使用**:Java社区有许多成熟的服务器端框架,...

    Photochopp:为图像处理基础UFRGS 20202构建的简单图像编辑软件

    在项目结构上,Photochopp的代码可能遵循MVC(模型-视图-控制器)设计模式。模型负责管理图像数据,视图展示图像并接收用户输入,控制器处理用户交互并更新模型。这种分离职责的设计方式有助于代码的维护和扩展。 ...

    闪光灯手电筒

    打开应用后,用户只需轻轻一点,就能快速启动或关闭闪光灯。此外,许多应用还提供了各种模式,如常亮模式、闪烁模式(用于SOS求救信号)和颜色变化模式,以满足不同场景的需求。例如,在音乐会或者派对上,用户可以...

    Spring Boot Messaging.pdf

    在关于Spring Boot Messaging的使用中,需要特别注意的一点是,Spring Boot使用的是Apache 2.0开源许可协议,它允许开发者自由地使用、修改和分享源代码,但对于在文档中提及的商标名称、标志或图像,应以编辑性的...

Global site tag (gtag.js) - Google Analytics