模板设计模式:
在一个类中首要步骤和最后步骤都已确定,而中间部分不确定,运用抽象方法来实现
举例:
需求:
学习类 学习
报名缴费
选择要学的学科
毕业找工作
// 学习类(相当于一个模板 可以适用选择不同学科的学生)
// 目的想让学习类 适用于学习的每一个学生
abstract class Study {
// 学习的方法
public void study() {
System.out.println("报名缴费");
// 调用抽象方法
chooseSubject();
System.out.println("毕业找工作");
}
// 声明一个抽象方法
public abstract void chooseSubject();
}
// YZP 学习
class YZP extends Study {
// 重写抽象方法
@Override
public void chooseSubject() {
System.out.println("我选择Java学习");
}
}
单例设计模式:
核心:在整个程序执行期间 有且只有一个该类的对象存在
饿汉式:
class SingleE {
// 创建单例对象
// 随着类的加载而创建 这个对象
private static SingleE singleE = new SingleE();
// 构造方法私有化
private SingleE() {
}
// 开放一个访问这个对象方法
public static SingleE getInstance() {
return singleE;
}
}
懒汉式:
// (只有你调用获取对象的方法 才有可能去创建对象)
// 延迟加载(懒加载)
class SingleLan {
// 创建单例对象 引用
private static SingleLan singleLan = null;
// 构造方法私有化
private SingleLan() {
}
// 获取单例对象的方法
public static SingleLan getInstance() {
// 判断 如果没有这个对象 再创建 有就不创建了
if(singleLan == null) {
singleLan = new SingleLan();
}
return singleLan;
}
}