java 代码
- public class Tenn&Amber{
- private static Tenn&Amber tennamber;
- private Tenn&Amber(){
- System.out.println("we are husband and wife!");
- }
- private Tenn&Amber(String anything){
- System.out.println("we are husband and wife!");
- }
- public static Tenn&Amber getInstance(){
- if(tennamber == null)
- tennamber = new Tenn&Amber();
- return tennamber;
- }
- public static Tenn&Amber getInstance(String anything){
- if(tennamber == null)
- tennamber = new Tenn&Amber(anything);
- return tennamber;
- }
- }
-
- public class TestCouple{
- public static void main(String [] args){
- Tenn&Amber tenn = Tenn&Amber.getInstance();
- Tenn&Amber amber = Tenn&Amber.getInstance();
- if(tenn == amber)
- System.out.println("不错的老婆,不错的老公,不错的人!");
- Tenn&Amber mistakenTenn = Tenn&Amber.getInstance("do some mistaken things");
- if(mistakenTenn == amber)
- System.out.println("不错的老公,不错的老婆,不错的人!");
-
- }
- }
程序运行结果:
we are husband and wife!
不错的老婆,不错的老公,不错的人!
不错的老公,不错的老婆,不错的人!
Singleton 是一种创建性模型,它用来确保只产生一个实例,并提供一个访问它的全局访问点。对一些类来说,保证只有一个实例是很重要的,比如有的时候,数据库连接或 Socket 连接要受到一定的限制,必须保持同一时间只能有一个连接的存在。
实现 Singleton 模式的办法通常有三种。
一、用静态方法实现 Singleton;
二、以静态变量为标志实现 Singleton;
三、用注册器机制来创建 Singleton。
当成为夫妻后,“不错的老婆,不错的老公,不错的人!”,即使老公犯了些小错误,也依然是“不错的老公,不错的老婆,不错的人!”,因为:
java 代码
- public static Tenn&Amber getInstance(String anything){
- if(tennamber == null)
- tennamber = new Tenn&Amber(anything);
- return tennamber;
- }
因为在老公犯错之前,已经是夫妻了