Java创建类模式_动力节点Java学院整理
创建类模式主要关注对象的创建过程,将对象的创建过程进行封装,使客户端可以直接得到对象,而不用去关心如何创建对象。创建类模式有5种,分别是:
单例模式:用于得到内存中的唯一对象。
工厂方法模式:用于创建复杂对象。
抽象工厂模式:用于创建一组相关或相互依赖的复杂对象。
建造者模式:用于创建模块化的更加复杂的对象。
原型模式:用于得到一个对象的拷贝。
为什么需要创建性模式
首先,在编程中,对象的创建通常是一件比较复杂的事,因为,为了达到降低耦合的目的,我们通常采用面向抽象编程的方式,对象间的关系不会硬编码到类中,而是等到调用的时候再进行组装,这样虽然降低了对象间的耦合,提高了对象复用的可能,但在一定程度上将组装类的任务都交给了最终调用的客户端程序,大大增加了客户端程序的复杂度。采用创建类模式的优点之一就是将组装对象的过程封装到一个单独的类中,这样,既不会增加对象间的耦合,又可以最大限度的减小客户端的负担。
其次,使用普通的方式创建对象,一般都是返回一个具体的对象,即所谓的面向实现编程,这与设计模式原则是相违背的。采用创建类模式则可以实现面向抽象编程。客户端要求的只是一个抽象的类型,具体返回什么样的对象,由创建者来决定。
再次,可以对创建对象的过程进行优化,客户端关注的只是得到对象,对对象的创建过程则不关心,因此,创建者可以对创建的过程进行优化,例如在特定条件下,如果使用单例模式或者是使用原型模式,都可以优化系统的性能。
总结
所有的创建类模式本质上都是对对象的创建过程进行封装。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
建造者模式_动力节点Java学院整理
定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 类型:创建类模式 类图: 四个要素 产品类:一般是一个较为复杂的对象,也就是说创建对象的过程比较复杂,一般会有比较多的代码量.在本类图中,产品类是一个具体的类,而非抽象类.实际编程中,产品类可以是由一个抽象类与它的不同实现组成,也可以是由多个抽象类与他们的实现组成. 抽象建造者:引入抽象建造者的目的,是为了将建造的具体过程交与它的子类来实现.这样更容易扩展.一般至少会有两个抽象方法,一个用来建造产品,一个是用来
-
单例模式垃圾回收_动力节点Java学院整理
讨论命题:当一个单例的对象长久不用时,会不会被jvm的垃圾收集机制回收. 首先说一下为什么会产生这一疑问,笔者本人再此之前从来没有考虑过垃圾回收对单例模式的影响,直到去年读了一本书,<设计模式之禅>秦小波著.在书中提到在j2ee应用中,jvm垃圾回收机制会把长久不用的单例类对象当作垃圾,并在cpu空闲的时候对其进行回收.之前读过的几本设计模式的书,包括<Java与模式>,书中都没有提到jvm垃圾回收机制对单例的影响.并且在工作过程中,也没有过单例对象被回收的经历,加上工作中很多前辈
-
工厂方法模式_动力节点Java学院整理
定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类. 类型:创建类模式 类图: 工厂方法模式代码 interface IProduct { public void productMethod(); } class Product implements IProduct { public void productMethod() { System.out.println("产品"); } } interface IFactory { publ
-
简单工厂模式_动力节点Java学院整理
简单工厂模式解释: 简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类. 简单工厂模式的UML图: 简单工厂模式中包含的角色及其相应的职责如下: 工厂角色(Creator):这是简单工厂模式的核心,由它负责创建所有的类的内部逻辑.当然工厂类必须能够被外界调用,创建所需要的产品对象.
-
5种Java经典创建型模式详解
一.概况 总体来说设计模式分为三大类: (1)创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. (2)结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元模式. (3)行为型模式,共十一种:策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式.中介者模式.解释器模式. 二.设计模式的六大原则 1.开闭原则(Open Close Principle) 开闭原则就是说对扩展开放,对修
-
Java设计模式之命令模式_动力节点Java学院整理
定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能. 类型:行为类模式 类图: 命令模式的结构 顾名思义,命令模式就是对命令的封装,首先来看一下命令模式类图中的基本结构: Command类:是一个抽象类,类中对需要执行的命令进行声明,一般来说要对外公布一个execute方法用来执行命令. ConcreteCommand类:Command类的实现类,对抽象类中声明的方法进行实现. Client类:最终的客户端调用类.
-
Java设计模式之创建者模式简介
Java的创建者模式与工厂模式有点类似,不过关注点不同.工厂模式往往只关心你要的是什么,而不关心这个东西的具体细节是什么.相对而言创建模式则是关心这个东西的具体细节的创建.拿创建人物来说,我们关心的不仅是创建一个人物,还要关心他的性别,肤色和名字,则可以使用创建者模式. 程序实例如下所示: package builder; /** * * DOC 种族角色 * */ public class Race { private String name;// 名字 private String skin
-
Java设计模式之观察者模式_动力节点Java学院整理
定义:定义对象间一种一对多的依赖关系,使得当每一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新. 类型:行为类模式 类图: 在软件系统中经常会有这样的需求:如果一个对象的状态发生改变,某些与它相关的对象也要随之做出相应的变化.比如,我们要设计一个右键菜单的功能,只要在软件的有效区域内点击鼠标右键,就会弹出一个菜单:再比如,我们要设计一个自动部署的功能,就像eclipse开发时,只要修改了文件,eclipse就会自动将修改的文件部署到服务器中.这两个功能有一个相似的地方,那就是一个对象
-
JAVA 枚举单例模式及源码分析的实例详解
JAVA 枚举单例模式及源码分析的实例详解 单例模式的实现有很多种,网上也分析了如今实现单利模式最好用枚举,好处不外乎三点: 1.线程安全 2.不会因为序列化而产生新实例 3.防止反射攻击但是貌似没有一篇文章解释ENUM单例如何实现了上述三点,请高手解释一下这三点: 关于第一点线程安全,从反编译后的类源码中可以看出也是通过类加载机制保证的,应该是这样吧(解决) 关于第二点序列化问题,有一篇文章说枚举类自己实现了readResolve()方法,所以抗序列化,这个方法是当前类自己实现的(解决) 关于
-
工厂模式_动力节点Java学院整理
简单工厂模式 当需要加法类的时候,调用工厂类的CreateOperate(),要指定制造的Product 例如在大话设计模式P11给的运算工厂例子: public static Operation createOperate(string operate) { Operation oper = null; 12 switch (operate) { case "+": { oper = new OperationAdd(); break; } case "-": {
随机推荐
- jQuery四种选择器使用及示例
- DIY jquery plugin - tabs标签切换实现代码
- iOS10适配之权限Crash问题的完美解决方案
- python运行时间的几种方法
- PHP中绘制图像的一些函数总结
- FCKeditor使用方法(FCKeditor_2.6.3)详细使用说明第1/2页
- Android RecyclerView打造悬浮效果的实现代码
- MySQL性能监控软件Nagios的安装及配置教程
- MySQL 及 SQL 注入与防范方法
- 关于javascript document.createDocumentFragment()
- 对frameset、frame、iframe的js操作示例代码
- java自定义动态链接数据库示例
- Android下的POS打印机调用的简单实现
- Linux中环境变量配置的步骤详解
- PHP优于Node.js的五大理由分享
- 微信小程序数据存储与取值详解
- python使用wxpy实现微信消息防撤回脚本
- 微信小程序如何使用云开发
- react 兄弟组件如何调用对方的方法示例
- vue动态循环出的多个select出现过的变为disabled(实例代码)