目录
一、Java设计模式
1、概述
在前辈们长期开发的过程中,为解决某一类问题,总结出的一种较为优化的代码设计结构。提高程序代码复用,扩展性,稳定性。
设计模式详述
2 、优点
- 可以提高程序员的思维能力、编程能力和设计能力。
- 使程序设计更加标准化、代码编制更加工程化,使开发效率大大提高,从而缩短软件的开发周期。
- 使设计的代码可重用性高、可读性强、可靠性高、灵活性好、可维护性强。
3、java设计模式类型
- 创建型模式:用于描述“怎样创建对象”,它的主要特点是“将对象的创建与使用分离”。提供了单例、原型、工厂方法、抽象工厂、建造者 5 种创建型模式。
- 结构型模式:用于描述如何将类或对象按某种布局组成更大的结构,提供了代理、适配器、桥接、装饰、外观、享元、组合 7 种结构型模式。
- 行为型模式:用于描述类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,以及怎样分配职责。提供了模板方法、策略、命令、职责链、状态、观察者、中介者、迭代器、访问者、备忘录、解释器 11 种行为型模式。
1、单例模式(Singleton)
在整个程序中只允许有一个对象。
创建对象,使用构造方法,将构造方法私有化,只能在本类中创建,这样我们就可以控制数量,向外界提供一个公共的访问方法。
(1)懒汉式单例
package com.ffyc.database.javadesign.singleton.demo1;
/*
* 懒汉式单例
* 在类加载时,不会创建单例对象,在第一次访问时,才会去创建
*
* 懒汉式单例有线程安全问题,必须要加锁处理
*/
public class Singleton {
//定义静态的
private static Singleton instance;
//让构造函数为 private,这样该类就不会被实例化
private Singleton (){
}
//向外界提供获取实例的方法 加锁 synchronized 才能保证单例
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
(2)饿汉式单例
/*
* 饿汉式单例
* 一般又称为急切式单例
* 在类加载时,就会创建此单例对象,这种写法不会出现线程安全问题
*/
public class Singleton {
//创建 Singleton 的一个对象
private static Singleton instance = new Singleton();
//让构造函数为 private
private Singleton(){
}
//获取唯一可用的对象
public static Singleton getInstance(){
return instance;
}
}
2、工厂模式(Factory Pattern )
定义
- 批量创建对象,将创建对象与使用对象分离,按照实际业务场景划分,工厂模式有2种不同的实现方式,分别是简单工厂模式、抽象工厂模式。
简单工厂
- 我们把被创建的对象称为“产品”,把创建产品的对象称为“工厂”。如果创建的产品不多,只需要创建一个工厂类。
- 角色:
- 简单工厂:负责生产对象的
- 抽象产品:接口/抽象类 进行定义
- 具体产品:实现抽象类接口/抽象类的具体实现类以抽象来表示具体。
3、代理模式
eg:代理 —>代理商 (4s店,中介,商场)
- 当用户不想或不能直接去访问目标对象,可以通过一个中间代理商在用户和目标之间起到一个中间作用。
- 代理模式的主要优点有:
- 保护目标对象
- 对目标的功能进行扩展</