设计模式之单例模式
来源:互联网 发布:淘宝买家反骚扰知乎 编辑:程序博客网 时间:2024/05/08 12:40
public class Singleton {//饿汉式private static final Singleton singleton = new Singleton();//构造方法私有,限制产生多个实例private Singleton(){}//获得实例public static Singleton getSingleton(){return singleton;}//类其它方法,尽量是staticpublic static void doSomething(){}}
确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
/* * 单例模式的变通,有上限的单例模式 * */public class Emperor {//设有两位皇帝private static int maxNumOfEmperor = 2;//单例模式中,成员属性与方法尽量static//保存皇帝名称private static ArrayList<String> nameList = new ArrayList<String>();//保存皇帝实例private static ArrayList<Emperor> emperorList = new ArrayList<Emperor>();//当前皇帝Numberprivate static int numEmperor = 0;//生产实例static {for (int i=0; i<maxNumOfEmperor; i++){emperorList.add(new Emperor("emperor"+i));}}//构造方法私有private Emperor(){}//构造方法私有private Emperor(String name){nameList.add(name);}//获得实例,但是随机的public static Emperor getInstance(){Random random = new Random();numEmperor = random.nextInt(maxNumOfEmperor);return emperorList.get(numEmperor);}//类中的其它方法,staticpublic static void say(){System.out.println(nameList.get(numEmperor));}}
public class Minister { public static void main(String[] args) { // 设有5位大臣依次向皇帝敬礼,皇帝随机 int ministerNum = 5; for(int i=0; i<ministerNum; i++){ Emperor emperor = Emperor.getInstance(); System.out.print("Minister-"+i+" is greeting: "); emperor.say(); } }}
0 0
- 设计模式之 单例设计模式
- 设计模式之 单例设计模式
- 设计模式之单例设计模式
- 设计模式之-----------单例设计模式
- 设计模式之:单例设计模式
- 设计模式之单例设计模式
- 设计模式之单例设计模式
- 设计模式之单例设计模式
- 设计模式之单例设计模式
- 设计模式之单例设计模式
- 设计模式之单例设计模式
- 设计模式之单例设计模式
- 设计模式之单例设计模式
- 设计模式之-单例设计模式
- 设计模式之单例设计模式 标签: 设计模式
- 设计模式之单例
- 设计模式之单例
- 设计模式之 单例
- CCPC(NQ)2016 - 1001 - A water problem 一个水题
- 关于融云的集成二(数据展示到聊天界面)
- img标签的onerror事件(应用以及注意事项)
- Window设计程序笔记
- 内部类
- 设计模式之单例模式
- [笔试练习]今日头条实习笔试
- coreboot基础——作为Payload的UEFI
- 【NOIP2011模拟9.7】雾雨魔理沙
- Android 处理图片放大缩小时报错java.lang.IllegalArgumentException: pointerIndex out of range pointerIndex=-1 ...
- QT之抓取12306余票动态信息并显示
- java API——Obeject类源码分析
- 【18】4Sum
- Hibernate获取表中最大的主键值