day06-2设计模式-单例模式,模板方式
来源:互联网 发布:阿里云短信服务java 编辑:程序博客网 时间:2024/05/27 00:34
设计模式:解决某一类问题行之有效的方法·
java中23中设计模式
单例设计模式:解决一个类在内存只存在一个对象
想要保证对象唯一
1.为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象
2.为了让其他程序可以访问该类对象,只好在本类中自定义一个对象
3.为了方便其他程序自定义对象的访问,可以对外提供一些访问方式
代码体现
1.将构造函数私有化
2.在类中建立一个本类对象
3.提供一个方法可以获取到该对象
对于事物该怎么描述还怎么描述
当需要将事物的对象保证在内存中唯一时,就将以上三步加上即可
*/
/*
这是先初始化对象
称为:饿汉式
single类一进内存就已经建好对象
class single
{
private static single s=new single();
private single(){}
public static single getInstance()
{
return s;
}
}
*/
//对象时方法被调用时,才初始化,也叫做对象的延时加载,成为懒汉式
//single一进内存,对象还没建立,只有调用getInstance方法,才建立对象
class single
{
private static single s=null;
private single(){}
public static single getInstance()//技术锁机制synchronized:只能进入一个
{
if (s==null)
{
synchronized(single.class)
{
if (s==null)
{
s=new single();
}
}
return s;
}
}
}
//记录原则:定义单例,建议使用饿汉式
class
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
------------------------------------------------
/*
需求:获取一段程序运行的时间
原理:获取程序开始和结束的时间
获取时间:System.currentTimeMillis();
当代码完成优化后,就可以解决该类问题
这种方法,模板方式设计模式
什么时模版方式?
在定义功能时,功能的一部分时确定的,但是有一部分不确定,而确定的部分在使用不确定的部分
那么这时就将不确定的部分暴漏出去,由该类的子类实现
*/
abstract class GetTime
{
public final void getTime()//避免被复写
{
long start=System.currentTimeMillis();
runcode();
long end=System.currentTimeMillis();
System.out.println("毫秒;"+(end-start));
}
public abstract void runcode();//里面时抽象的
}
class SubTime extends GetTime
{
public void runcode()
{
for (int x=0;x<4000 ; x++)
{
System.out.print(x);
}
}
}
class TemplateDemo
{
public static void main(String[] args)
{
//GetTime gt=new GetTime();
SubTime gt=new SubTime();
gt.getTime();
}
}
- day06-2设计模式-单例模式,模板方式
- 设计模式(工厂模式、单例模式、模板模式)
- 设计模式--模板方式模式
- Java设计模式—单例模式和模板模式
- JAVA 模板设计模式和单例设计模式
- 单例设计模式实现方式
- 单例设计模式多种实现方式
- 单例模式 模板
- 单例模式模板
- 设计模式之模板方式
- 设计模式随笔-模板方式
- 设计模式-单例模式三种方式的比较
- java -- 模板设计、复合模式、单例设计
- 设计模式之模板方式模式
- 设计模式(2)-单例模式(Singleton)
- 设计模式(四)--单例模式(2)
- Java设计模式--单例模式2
- 设计模式(2)-单例模式(Singleton)
- 排序算法之插入排序
- LeetCode Implement Trie (Prefix Tree)
- 【lightoj1305】 Area of a Parallelogram
- JNI简单尝试
- 修正“Athena”迁移 字符串 到 新建区段 时出错
- day06-2设计模式-单例模式,模板方式
- rdlc报表 打印图片功能如何实现
- 各开发语言LDAP认证指南
- Picasso 强大的网络图片缓存框架
- OkHttp完全解析
- 第十章、epub文件处理 -- 样式处理
- 1002 写出这个数
- Hadoop分布式计算
- 根据前序遍历和中序遍历恢复二叉树(附代码)