模板
模板:是一种设计模式
程序由确定的部分和不确定的部分组成,这时可以把不确定部分抽象出来。然后对外开放可以访问方式,
再使用的时候 可以由其子类来继承父类, 重写抽象方法 来完成不确定的部分。
例:
public class Demo01 {
public static void main(String[] args) {
GetTime g = new SubTime();
g.getTime();
}
}
abstract class GetTime{
public void getTime() {
long startTime = System.currentTimeMillis();
fun();
long endTime = System.currentTimeMillis();
System.out.println("程序执行:" + (endTime - startTime) + "毫秒");
}
abstract public void fun();
}
class SubTime extends GetTime{
@Override
public void fun() {
for (int i = 0; i < 20000; i++) {
System.out.println(i);
}
}
}
单例
单例设计模式–(重点在于思想)
核心:在整个程序的执行期间 不管你创建这个类的对象
多少个 整个程序有且只有一个 该类的对象 单例对象
如何写一个单例出来?思路
1.不让外界来创建对象(把构造方法 私有化)
2.自己来创建这个对象(写个创建对象自定义方法)
3.对外开放访问该对象权限(把对象的访问方法暴露出去)
(只对外提供获取方法)
单例模式1(俗称:饿汉式)
public class Demo01 {
public static void main(String[] args) {
}
}
class Single{
private static Single single = new Single();
private Single() {
}
public static Single getInstance() {
return single;
}
}
单例模式2(俗称:懒汉式)
特点: 延迟加载
只有你调用单例方法的时候 才会创建对象
而不是跟模式1一样 随着类的加载而加载
class SingleLan{
private static SingleLan singleLan = null;
private SingleLan() {
}
public static SingleLan getInstence() {
if (singleLan == null) {
singleLan = new SingleLan();
}
return singleLan;
}
}