Singleton Patten
public class RegHandler{
private static RegHandler regHandler;//only one instance
private RegHandler(){} /* prevents other classes from
} instantiating the class */
public class RegHandler{
private static RegHandler regHandler;
private RegHandler(){}
public static RegHandler getInstance(){//getter method
if (regHandler==null){ //if object doesn’t exist
regHandler=new RegHandler();//creates only one instance
}
return regHandler;//returns existing object’s reference
}}
example:recode the oob-case1 student register
class Student
{
String missionId;
String name;
int age;
public Student()
{
name = null;
age = 0;
System.out.println("Student begin to regist");
}
public Student(String s, int i)
{
name = s;
age = i;
}
public void getMissionId()
{
//Registrar r = new Registrar();
Registrar r = Registrar.getRegistrar();
missionId = r.getMissionId(this);
}
}
class Registrar
{
private static int id = 0;
private static Registrar r;
private Registrar()
{
System.out.println("Registrar is begin now");
}
public static Registrar getRegistrar()
{
if(r == null )
r = new Registrar();
return r;
}
public String getMissionId(Student s)
{
Validator v = Validator.getValidator();
if(v.missionId(s))
{
id++;
}
String missionId = "S000"+id;
return missionId;
}
}
class Validator
{
private static Validator v;
private Validator()
{
System.out.println("Validator is begin now");
}
public static Validator getValidator()
{
if(v == null)
v = new Validator();
return v;
}
public boolean missionId(Student s)
{
if (s.age<18)
return false;
return true;
}
}
public class UniversityRegistation {
/** Creates a new instance of UniversityRegistation */
public UniversityRegistation() {
System.out.println("The system is working now");
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Student s = new Student("bobo",26);
s.getMissionId();
System.out.println(s.name+" "+s.age+" "+s.missionId);
Student ss = new Student("shirley",22);
ss.getMissionId();
System.out.println(ss.name+" "+ss.age+" "+ss.missionId);
}
}
Singleton Patten相关推荐
- Service Locator Patten 总结
原网址将会不断更新 : 作程的技术博客 <Service Locator Patten 总结> it.zuocheng.net http://www.zuocheng.net/i ...
- 设计模式 -- 单例模式
Singleton Patten 是Java中最简单的设计模式之一. 它提供了一种创建对象的最佳方式.该模式涉及的是单一类.该类负责创建自己的对象,同时确保只有单个对象被创建.这个类提供了一种访问其唯 ...
- 【Spring】bean的作用域(@Scope) - singleton、prototype
已知spring 3+已拥有多种不同的作用域: singleton(默认).prototype.request.session.global session.(参考: spring中scope作用域( ...
- 使用Singleton需要考虑内存释放
GoF[p84]所说的Singleton没有考虑到内存的释放 解决方法: 1.加入一个成员函数DestroyInstance()来释放内存,在整个工程中需且仅需调用DestroyInstance()一 ...
- 用java代码实现Singleton,为什么在Java代码中实现Singleton模式(有时被认为是Java世界中的反模式)?...
I have seen some people in SO commenting that Singleton Pattern is an anti-pattern. I want to know w ...
- Singleton 单例模板
1 // singleton.h 2 3 #ifndef SINGLETON_H 4 #define SINGLETON_H 5 6 // 单例基类模板 7 template <class T& ...
- php singleton()
common.php <?php class CC { private static $ins; public static function singleton() { if (!isset( ...
- 设计模式之单例模式(Singleton)摘录
23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式包括:1.FactoryMethod(工厂方法模式):2.Abstract Factory(抽象工厂模式):3.Sin ...
- Ruby的Singleton method
Ruby中,特定于某一对象的方法被称为Singleton method. 例如: a = "string"def a.runputs "#{self} run" ...
最新文章
- 用质因子去分解质因数
- vue将文本渲染html,vue2.0 之文本渲染-v-html、v-text
- ES6新特性_ES6扩展运算符的介绍---JavaScript_ECMAScript_ES6-ES11新特性工作笔记013
- python编程英语单词下载2019_图形化编程软件-mPython下载2019正式版 下载_久友软件下载...
- [2018.10.23 T1] 战争
- 使用Battery Historian采集android耗电数据
- Excel表格中将两个或多个单元格内容合并为一个单元格的内容
- 四、PHP进阶学习之MySQL②
- excel公式编辑器_V14.0发布:组件化编辑器+数据透视表
- linux安装系统如何查看硬盘,如何检查Linux系统服务器的硬盘是SSD还是HDD?
- 机器学习(一)机器学习概述
- 机器学习 python
- ABC166E This Message Will Self-Destruct in 5s 题解
- 【渝粤题库】陕西师范大学180204市场营销学 作业(高起本)
- 搭档之家:“假欧冠决赛”竟1万多人观看,刺不刺激,惊不惊喜,意不意外?
- PC客户端软件的安装和卸载测试知识点
- 数学建模入门 方法及代码
- 微信小程序实现附近医院、加油站、景点和地图路线导航功能(超详细)(附源码)
- 前端使用search搜索器、with(关联)和 field
- SVN 在idea 中无法查看历史记录
热门文章
- 视频信号传输标准 BT656
- notes 链接问题
- 追求成功还是避免失败 (zz)
- 统计子串在母串出现的次数
- 解决 QRibbon 在VS+Qt 环境下的编码报错问题 “文本后缀无效; 未找到文文本运算符或文本运算符模板“
- Centos7 ping不通百度
- Altium19在原理图中选中器件,PCB中对应器件飞到鼠标下,跟随鼠标,怎么解决?
- PHY与网络变压器的连接方式
- 问题解答1:ERROR 1682 (HY000): Native table 'performance_schema'.'session_variables' has the wrong struct
- K-Means的三种迭代算法