1.单例模式
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
方法一:
public class Singleton{
public static Singleton instance == null;
private singleton() { }
public static Singleton getSingleton(){
if(null == instance){
instance = new Singleton();
}
return instance;
}
}
public class Singleton2 {
private static Singleton2 instance2 = null;
public static synchronized Singleton2 getInstance() {
if (instance2 == null)
instance2 = new Singleton2();
return instance2;
}
}
package com.bean;
public class Cat extends Animal{
@Override
public void eat() {
System.out.println("I am a Cat,I like eat fish!!");
}
}
package com.bean;
public class Cat extends Animal{
@Override
public void eat() {
System.out.println("I am a Cat,I like eat fish!!");
}
}
package com.bean;
public class Dog extends Animal{
@Override
public void eat() {
System.out.println("I am a dog,I like eat feat!!!!!");
}
}
package com.bean;
public class Sheep extends Animal{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public void eat() {
// TODO Auto-generated method stub
}
}
package com.factory;
import com.bean.Animal;
import com.bean.Cat;
import com.bean.Dog;
import com.bean.Sheep;
public class Animal_Factory {
private static Animal animal = null;
public static Animal getAnimal(String animal_name){
if(animal_name.equals("Dog")){
animal = new Dog();
}
if(animal_name.equals("Cat")){
animal = new Cat();
}
if(animal_name.equals("Sheep")){
animal = new Sheep();
}
return animal;
}
}
package com.factory.test;
import com.bean.Animal;
import com.factory.Animal_Factory;
public class Factory_Test {
/**
* @param args
*/
public static void main(String[] args) {
Animal animal_a = Animal_Factory.getAnimal("Dog");
animal_a.eat();
Animal animal_b = Animal_Factory.getAnimal("Cat");
animal_b.eat();
}
}
原文:http://blog.csdn.net/fangleijiang/article/details/19912667