标签:nbsp 根据 factor 构造方法 print class ret 用户 获取
单例模式:
*
 *单例模式:一类只有一个实例。 
 *特点:构造方法私有化,提供一个静态的方法获取实例。
 *懒汉式:使用时再创建对象。
 */
public class Singleton2 {
	    
//	private String name;
//  修饰符   数据类型  属性名;	 			
	private static Singleton2 singleton ;
	
	private Singleton2(){
	}
	
	public static Singleton2 getInstance(){
		if(singleton==null){
			singleton = new Singleton2();
		}
		return singleton;
	}
	
}
单例模式:一类只有一个实例。 
 *特点:构造方法私有化,提供一个静态的方法获取实例。
 *饿汉式:加载时创建对象。
 */
public class Singleton {
	private static Singleton singleton = new Singleton();
	
	private Singleton(){
	}
	
	public static Singleton getInstance(){
		return singleton;
	}
	
}
public class TestSingleton {
	public static void main(String[] args) {
		Singleton s = Singleton.getInstance();
		Singleton s2 = Singleton.getInstance();
		System.out.println(s==s2);//如何引用类型使用"==",其比较的是地址是否相同。
	}
}
简单工厂模式:
  简单工厂模式(静态工厂方法):属于创建型模式,主要用生成"产品"。 
 * 工厂模式的命名:xxxFactory--->生成xxx
 *需求:创建一个生成斧头的工厂,根据用户传入的参数生产相应斧头并返回
 *	如果参数为steel--->生成SteelAxe的一个对象
 *  如果参数为stone--->生成StoneAxe的一个对象 
 *如何实现工厂模式? 
 * 1.编写父类和子类或接口和实现类
 * 2.编写静态的工厂方法,返回值类型为父类或接口。--->多态
 * 3.根据用户的需求动态创建子类的实例,并返回。
 * 
 */
public class AxeFactory {
	/**
	 * 负责创建产品(斧头)
	 * @param ch
	 * @return
	 */
	public static Axe getInstance(String ch){
		Axe axe=null;
		if(ch.equals("steel")){
			axe = new SteelAxe();
		}else if(ch.equals("stone")){
			axe = new StoneAxe();
		}
		return axe;
	}
	
	
	
	public static void main(String[] args) {
		Axe axe = AxeFactory.getInstance("steel");
		axe.chop();
		System.out.println("*********************");
		Axe axe2 = AxeFactory.getInstance("stone");
		axe2.chop();
		
	}
	
}
public abstract class Axe {
public abstract void chop();
}
public class SteelAxe extends Axe {
@Override
public void chop() {
System.out.println("我是铁斧,砍日本人锋利!");
}
}
public class StoneAxe extends Axe {
@Override
public void chop() {
System.out.println("我是石斧,砍日本人很钝!");
}
}
标签:nbsp 根据 factor 构造方法 print class ret 用户 获取
原文地址:http://www.cnblogs.com/benpaozhimeng/p/6979672.html