一、单例设计模式
1.单例设计模式:保证类在内存中只有一个对象。
(1) 控制类的创建,不让其他类来创建本类的的对象(private)
(2)在类中定义一个本类的对象
(3)提供公共访问方式。(public)
2.两种实现方式
(1)饿汉式
class Singleton{
//1.私有构造函数
private Singleton(){
}
//2.创建本类的私有静态对象
private static Singleton s = new Singleton();
//3.对外提供公共的访问方法
public static Singleton getInstance(){
return s;
}
}
(2)懒汉式
class Singleton{
//1.私有构造函数
private Singleton(){
}
//2.创建本类的引用
private static Singleton s;
//3.对外提供公共的访问方法
public static Singleton getInstance(){
if(s == null){
s = new Singleton();
}
return s;
}
}
二、装饰设计模式
步骤:1.获取被包装类的引用;
2.通过构造函数创建对象的时候,传入被包装的对象;
3.对其原有的功能进行升级。
interface Coder {
public void code();
}
class Student implements Coder {
@Override
public void code() {
System.out.println("javase");
System.out.println("javaweb");
}
}
class HeiMaStudent implements Coder {
//1.获取到被包装的类的引用
private Student s;
//2.//通过构造函数创建对象的时候,传入被包装的对象
public ItcastStudent(Student s) {
this.s = s;
}
@Override
public void code() {
//3.对其原有功能进行升级
s.code();
System.out.println("数据库");
System.out.println("ssh");
System.out.println("安卓");
System.out.println(".....");
}
}
三、模板设计模式
定义一个操作中的算法骨架,将具体的算法延迟到子类中实现。
优点:可以灵活的实现具体的算法,满足客户灵活多变的要求
四、适配器模式
1.什么是适配器
(1)在使用监听器的时候, 需要定义一个类事件监听器接口.
(2)通常接口中有多个方法, 而程序中不一定所有的都用到, 但又必须重写, 这很繁琐.
(3)适配器简化了这些操作, 我们定义监听器时只要继承适配器, 然后重写需要的方法即可.
2.适配器原理
(1)适配器就是一个类, 实现了监听器接口, 所有抽象方法都重写了, 但是方法全是空的.
(2)适配器类需要定义成抽象的,因为创建该类对象,调用空方法是没有意义的
(3)目的就是为了简化程序员的操作, 定义监听器时继承适配器, 只重写需要的方法即可.