java的设计模式大体上分为三大类:

  • 创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。
  • 结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。
  • 行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

一、Factory Method

基本概念

FactoryMethod是一种创建性模式,它定义了一个创建对象的接口,但是却让子类来决定具体实例化哪一个类.当一个类无法预料要创建哪种类的对象或是一个类需要由子类来指定创建的对象时我们就需要用到Factory Method 模式了.简单说来,Factory Method可以根据不同的条件产生不同的实例,当然这些不同的实例通常是属于相同的类型,具有共同的父类.Factory Method把创建这些实例的具体过程封装起来了,简化了客户端的应用,也改善了程序的扩展性,使得将来可以做最小的改动就可以加入新的待创建的类. 通常我们将Factory Method作为一种标准的创建对象的方法,当发现需要更多的灵活性的时候,就开始考虑向其它创建型模式转化

简单分析

图1是Factory Method 模式的结构图,这里提供了一些术语,让我们可以进行更方便的描述:

  1. Product: 需要创建的产品的抽象类.
  2. ConcreteProduct: Product的子类,一系列具体的产品.
  3. Creator: 抽象创建器接口,声明返回Product类型对象的Factory Method.
  4. ConcreteCreator: 具体的创建器,重写Creator中的Factory Method,返回ConcreteProduct类型的实例.

  

二、Singleton Method

  • 定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。
  • 实现:私有静态成员变量,存放实例;私有构造方法,防止new实例;公共静态方法,创建或返回私有静态成员变量存放的实例
  • 懒汉模式:工厂方法时实例对象,运行时实例
  • 饿汉模式:私有静态成员变量直接赋值,编译直接实例对象
  • 单例模式是一种对象创建型模式。

三、prototype

1、定义

  原型模式(Prototype)就是通过复制一个已经存在的实例来返回新的实例,而不是新建实例,被复制的实例就是我们所称的原型对象,这个原型是可定制的。

  2、原理

  有两部分组成,抽象原型和具体原型。意图:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

四、proxy

定义

代理模式是对象的结构模式。代理模式给某一个对象提供代理对象,并由代理对象控制对源对象的引用。

代理模式的结构

所谓的代理,就是一个人或者一个机构代表另外一个人或者另外一个机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象中间起到中介的作用。

转载于:https://www.cnblogs.com/cheneywxy/p/10705302.html

java Design Patterns相关推荐

  1. Java设计模式(java design patterns)

    目录 一.Java设计模式 1.概述 2 .优点 3.java设计模式类型 1.单例模式(Singleton) (1)懒汉式单例 (2)饿汉式单例 2.工厂模式(Factory Pattern ) 定 ...

  2. Design Patterns in Java

    <Design Patterns in Java> 作者:Steven John Metsker,William C. Wake 出版日期:2006-04-28 语言:English 版本 ...

  3. java design按钮_DesignJava 设计模式,讲述 的各种 方便在项目中进行 框架结构 Develop 238万源代码下载- www.pudn.com...

    文件名称: DesignJava下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 1675 KB 上传时间: 2013-11-21 下载次数: 2 提 供 者: 1 ...

  4. Java基础学习总结(37)——Java23中设计模式(Design Patterns)详解

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

  5. 艾伟_转载:C# Design Patterns (3) - Decorator

    Decorator Pattern (装饰模式) 装饰模式可「动态」地给一个对象添加一些额外的职责,提供有别于「继承」的另一种选择.就扩展功能而言,Decorator Pattern 透过 Aggre ...

  6. 艾伟_转载:C# Design Patterns (4) - Proxy

    本帖介绍 Proxy Pattern (代理模式). Proxy Pattern (代理模式) The Proxy Pattern provides a surrogate or placeholde ...

  7. 架构与设计 之一 C 嵌入式设计模式(Design Patterns for Embedded Systems in C)的学习记录

    唉   时至今日,已经不知道在嵌入式的道路上到底挣扎了多少个岁月,总感觉要"病入膏肓"了.此间总是不时出现一些疑惑:人家搞 Java.搞 C# 的动不动就是什么架构 / 框架的,搞 ...

  8. 设计模式(Design Patterns)详解

    设计模式(Design Patterns) --可复用面向对象软件的基础一般会用到的: Factory( 工厂模式) Singleton(单例模式) 这两个比较多 Proxy(代理模式) Adapte ...

  9. 艾伟:C# Design Patterns (1) - Factory Method

    Simple Factory Pattern (简单工厂模式) 特性: 把类的实例化工作,集中到一个「工厂类」去处理,亦即将 new instance 的工作,都交给一个「工厂」去处理,而不要分散写在 ...

最新文章

  1. indows上的android开发环境软件架构5
  2. 一篇文章带你了解https是如何做到客户端与服务端之间安全通信
  3. 无线充电系统在输出部分采用LCC拓扑结构综述研究
  4. 用计算机对音频信息进行处理 要将模拟信号,第五章 练习题
  5. Istio on ACK集成生态(2): 扩展AlertManager集成钉钉助力可观测性监控能力
  6. (转载)MyCat:开源分布式数据库中间件
  7. C++ code:main参数
  8. MyBatis-Plus_Condition作用
  9. 不实用额外变量 交换_变量交换:巧用异或运算
  10. 基于matlab双闭环直流调速系统仿真,基于MATLAB的双闭环直流调速系统的仿真
  11. chrome手机版怎么扫描二维码_照片扫描仪软件手机版-照片扫描仪手机版官网版下载v3.2.0...
  12. jpg转bmp c语言 linux,C++_C语言实现BMP转换JPG的方法,本文实例讲述了C语言实现BMP转 - phpStudy...
  13. 遥感影像地图分类识别的研究与实现
  14. 青龙面板+nolan-依赖+拉库+企业微信推送(手把手喂饭,各版本通用)
  15. 成功把变砖的RTL9210b硬盘盒救了回来,附量产工具和固件
  16. [转]重装系统时要备份的东西
  17. /var/ha/soc/hagsdsocket./cdrom/rootpre.sh[338]: /usr/lpp/ssp/bin/spget_syspar
  18. 从SGS认识晚安月亮纸尿裤,换个角度更专业
  19. LIBSVM和LIBLINEAR的优化
  20. 神的编辑器和编辑器的神

热门文章

  1. 热乎着,昨晚阿里这题真太绝了
  2. html导航下拉菜单js点击显示不出来,使用JS做下拉菜单,子菜单不显示
  3. nginx转发图片请求变成html/text_教你使用nginx部署网站教程
  4. android教育游戏设计方案,基于Android平台的儿童教育游戏的设计与开发
  5. html5变动标签新写法,Html5新标签解释及用法
  6. linux wifi修改频率,Linux Custom CRDA WiFi regulatory.bin和40MHz BW 5GHz频...
  7. python中configparser详解_python ConfigParser模块详解
  8. linux中find命令的35个实际例子
  9. 月薪5K的运维小白如何成为月薪5W的高级架构师?
  10. python ipaddr_python之IP地址或IP段处理模块-ipaddr