设计模式之单例模式
来源:互联网 发布:安广网络电视黑屏 编辑:程序博客网 时间:2024/06/06 03:27
单例模式,就是这个类在整个应用中只有一份内存,不能通过new来创造实例类。好处就是可以减少系统内存的消耗和减少系统构造和析构的时间,提高程序效率。
我们很多应用都有个日期类,来显示当前的年,月,日等,特别是用于时钟的应用设计,每次更新时间都new一下,系统的开销是很大的,这里采用单例模式来设计,就能很好的解决这个问题,附上代码如下,开发平台为android平台:
package com.android.DigitalTime;
import java.util.Calendar;
import android.content.Context;
import android.util.Log;
public class DateInfo
{
private static int date_month;
private static int date_day;
private static int date_hour;
private static int date_minute;
private static int date_second;
private static int date_week;
private static DateInfo dateInfo=null;
private static boolean IsDebug = false;
private static String TAG = "DateInfo";
public int getDate_month()
{
return date_month;
}
public void setDate_month(int dateMonth)
{
date_month = dateMonth;
}
public int getDate_day() {
return date_day;
}
public void setDate_day(int dateDay)
{
date_day = dateDay;
}
public int getDate_hour()
{
return date_hour;
}
public void setDate_hour(int dateHour)
{
date_hour = dateHour;
}
public int getDate_minute()
{
return date_minute;
}
public void setDate_minute(int dateMinute)
{
date_minute = dateMinute;
}
public int getDate_second() {
return date_second;
}
public void setDate_second(int dateSecond)
{
date_second = dateSecond;
}
public int getDate_week() {
return date_week;
}
public void setDate_week(int dateWeek)
{
date_week = dateWeek;
}
private DateInfo(int dateMonth, int dateDay, int dateHour, int dateMinute,
int dateSecond, int dateWeek)
{
super();
date_month = dateMonth;
date_day = dateDay;
date_hour = dateHour;
date_minute = dateMinute;
date_second = dateSecond;
date_week = dateWeek;
}
private DateInfo()
{
super();
// TODO Auto-generated constructor stub
}
public static DateInfo getInstance(Context context)
{
if(dateInfo==null)
{
dateInfo = new DateInfo();
}
try
{
Calendar calendar = Calendar.getInstance();
// calendar.setTimeInMillis(SystemClock.uptimeMillis());
dateInfo.setDate_month(calendar.get(Calendar.MONTH) + 1);
dateInfo.setDate_day(calendar.get(Calendar.DAY_OF_MONTH));
dateInfo.setDate_week(calendar.get(Calendar.DAY_OF_WEEK));
if (android.text.format.DateFormat.is24HourFormat(context))
{
dateInfo.setDate_hour(calendar.get(Calendar.HOUR_OF_DAY));
}
else
{
dateInfo.setDate_hour(calendar.get(Calendar.HOUR));
if (calendar.get(Calendar.HOUR)==0)
{
dateInfo.setDate_hour(calendar.get(Calendar.HOUR)+12);
}
}
dateInfo.setDate_minute(calendar.get(Calendar.MINUTE));
//Log.i("dingchao Digital Time", "dateInfo.getDate_minute():"+dateInfo.getDate_minute());
dateInfo.setDate_second(calendar.get(Calendar.SECOND));
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return dateInfo;
}
}
- 设计模式之 单例设计模式
- 设计模式之 单例设计模式
- 设计模式之单例设计模式
- 设计模式之-----------单例设计模式
- 设计模式之:单例设计模式
- 设计模式之单例设计模式
- 设计模式之单例设计模式
- 设计模式之单例设计模式
- 设计模式之单例设计模式
- 设计模式之单例设计模式
- 设计模式之单例设计模式
- 设计模式之单例设计模式
- 设计模式之单例设计模式
- 设计模式之-单例设计模式
- 设计模式之单例设计模式 标签: 设计模式
- 设计模式之单例
- 设计模式之单例
- 设计模式之 单例
- 推荐一个 IT人员 技术网站(技术文章,几乎各个领域都涉及)
- 关于 Java 对象序列化您不知道的 5 件事
- JAVA 对象序列化成字符串和反序列
- TCP为什么要三次握手
- [转]OLEDB读取Excel出现字符串截断、丢失情况
- 设计模式之单例模式
- Unicode、UTF-8 和 ISO8859-1到底有什么区别
- OCP考题解析_043:Oracle RECID和SEQUENCE#的区别及RESETLOGS操作
- mysql数据库赋权
- 一些大牛的博客收集
- Hadoop TaskScheduler浅析
- modelsim教程
- soj 1363. Semi-prime H-numbers
- Android权限机制