简单工厂模式:
1.概述:工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程(new关键字和具体的构造器)隐藏起来,用一个工厂方法来代替,对外提供的只是一个工厂方法,达到提高灵活性的目的。
2.优点:
1.隐蔽了new关键字和构造器
2.降低了这个对象与别的类之间的耦合度,提高了程序的可扩展性
原因:当子类被别的类替换,或者构造器的参数发生变化的时候,只需改动工厂方法内的new即可,改动量降到了最低,而如果不用工厂模式,而是直接用new关键字的话,需要改动的地方就很多了
3.把对象的设计和实现分割开来,从而代码扩展性强、灵活性更高。
3.工厂模式的适用范围:
当遇到下面的情况时,开发人员可以考虑采用工厂模式:
· 在编码时不能预见需要创建哪一种类的实例。
· 一个类使用它的子类来创建对象。
· 开发人员不希望创建了哪个类的实例以及如何创建实例的信息暴露给外部程序。
除了上面提到的例子,工厂模式的实现方式还允许有一些小小的变化,例如:
· 基类可以是一个抽象类,在这种情况下,工厂类必须返回一个非抽象类。
· 基类提供了一些缺省方法,只有当这些缺省方法不能满足特殊需求的情况下才在子类中重写这些方法。
· 可以直接通过传递给工厂类的参数决定应该返回哪一个子类的实例。
4.使用工厂模式,它的设计期与运行期的对象不同,这样就增强了代码的可扩展性。
它把构造器隐蔽了起了,降低了代码的耦合度,增强了代码的复用性。
工厂模式与new的比较:如果使用new关键字的话,那么如果这个类的对象在很多的地方用到,必须要使用多次的new操作,这样容易引起代码的重复使用, 如果,需要改动或者替换成这个类的子类对象,那么,就需要把执行了new操作的所有的地方都要改,比较麻烦。而工厂模式,因为它代替了构造器和new关键 字,而且,它是使用面向接口的,所以,需要这个类的对象的时候,只需要调用这个方法就可以了,如果,需要改动或者替换成这个类的子类对象,只需要修改这个 工厂里面的内容,而其他的地方都不需要改动。
工厂模式的结构是:用一个方法来代替new关键字和构造器。
单例模式:
分类:
1.单例模式的四大特征:
懒汉式:
1.声明一个私有的,静态的本类对象,但并不在声明的时候就初始化,因此,它的值为null
2.私有化构造器
3.对外提供一个全局的,公有的,静态的,唯一的方法,用来获得该实例,但注意的是:必须要手动保持线程同步(synchronized)
4.在该方法里,判断对象是否为null,如果是null的话,表示这个类还没有被实例化,就会初始化这个对象,再返回如果不是null的话,就直接返回
饿汉式:
1.声明一个私有的,静态的本类对象,并在声明的时候就初始化
2.私有化构造器
3.对外提供一个全局的,公有的,静态的,唯一的方法,用来获得该实例(饿汉模式线程本身就是同步的)
4.在该方法里,直接返回该对象即可
从资源利用效率角度来讲,这个比懒汉式单例类稍差些。从速度和反应时间角度来讲,则比懒汉式单例类稍好些。
2.它能解决什么问题:它确保一个类在Java虚拟机里只有一个实例,使一个类只有一个对象,整个系统共享这个对象。
3.什么时候使用懒汉式和饿汉式:
1.在使用的几率很少的情况下用懒汉式。
2.而是用的几率很高的话就用饿汉式。
4.单例模式的好处:
整个系统中的所有的类共用一个实例化对象,这样可以有效的节省资源。
模板模式:
模板模式是多个实现类继承一个抽象父类,然后通过抽象父类控制顶级逻辑,并把基本操作的实现推迟到子类去实现,这样能有效简化控制层诸类的代码,借 用这种模式,我们可以把固定的异常处理代码放在基类中,而让子类来实现具体的业务,如果执行业务过程中出现异常如数据库无法连接,用户找不到异常后,直接 将异常抛出让基类来处理,这样做成功的把业务处理和异常处理分开到了子类和基类两种类中,涉及具体业务处理的子类代码得到了很大的简化,更方便阅读,修改 和管理。
1.父类定义流程,子类实现:
模板模式解决了子类有大量重复的流程,重复的方法,重复的变量时的问题。不同的子类间都有的方法,抽取出来放在父类中,子类都有的流程,在父类中定义好其流程,流程的具体实现就交给子类来实现。
2.模板方法的目的:
A. 减少重复代码。
B. 防止调用出错。
3.使用模板方法的步骤:
A. 识别:从一系列的算法中去找到,他们的共同部分在哪,称之为识别。
B. 分离:将不同的代码抽取出来,称之为分离。
C. 实现:用
相关推荐
JAVA常用设计模式JAVA常用设计模式JAVA常用设计模式JAVA常用设计模式JAVA常用设计模式JAVA常用设计模式JAVA常用设计模式JAVA常用设计模式JAVA常用设计模式JAVA常用设计模式
Java的一些常用设计模式,包括单例模式、门面模式、策略模式、观察者模式、建造者模式、简单工厂模式、抽象工厂模式、工厂方法模式、代理模式、动态代理模式,适合初学者掌握
23种常用设计模式,包括单例模式、工厂模式、桥接模式、适配器模式、亨元模式、抽象工厂模式等。
JAVA常用设计模式,包括:简单工厂、抽象工厂、单例、外观、桥接、代理等设计模式
23常用设计模式的UML,里面内容很是详细。适合初学者学习,也是高手提高
java常用的设计模式一个简单总结,如工厂模式、单例模式、代理模式等等。(楼主也是未入门的菜鸟,如有错误请及时联系楼主更正,谢谢!)
该文件里面包含JAVA开发常用的设计模式,通过举例、分析、代码示意的方式让读者很容易理解
详细的jsp网络编程、常用设计模式! 前言 3 第一部分:网络编程 4 一、了解URL 4 二、读取URL中的资源 4 1、URL构造方法: 5 2、读取资源 5 三、INETADDRESS类 5 四、SOCKET类 6 1、Socket套接字连接 6 2、Socket...
Java常用设计模式Java常用设计模式Java常用设计模式
本工程是基于C++实现21种常用的设计模式,里面包含了实例代码和示例。编写的时候在学习C++11特性,所以代码风格可能不一致,一切交流为主。在vs2015+win10上已经完美运行。绝对实用绝对受益!设计模式的基础可以通过...
基本设计模式 实例 类图 序列图 常见设计模式的应用 案例分析
常用设计模式。有23种经典模式,主要关于C#的。
java 23个常用的设计模式,学校教材,ppt格式,一共4章,还不错!
JavaEE常用设计模式,MVC、DAO、工厂等等
java 设计模式.23种java常用设计模式 chm格式 java 设计模式.23种java常用设计模式 chm格式
Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)
php常用设计模式.pdf
收集了9种常用设计模式,能帮助理解Java Web开发、Android开发中一些机制的理解,强烈推荐下载学习,好的话麻烦顶一下。