单例模式指的是一个类的实例只能有一个,实现方法很简单。首先要把这个类的构造器私有化,防止外部代码去访问他,然后在类的内部构造一个静态初始化函数作为对外的接口。
工厂模式指的是把实例化类的工作(通常是new来做)进一步封装便于后续工程的维护。这一点体现如果我们写了很多类的实例化,每次都调用构造函数,但是如果要修改构造函数,那么我们要每个地方都修改。但是如果用了工厂,那么我们只要修改工厂即可代码之间的耦合不紧。
package singleton;
public class singletontest {
public static void main(String args[])
{
//---------
singleclass t1=singleclass.getinstance();
singleclass t2=singleclass.getinstance();
if(t1==t2)
{
System.out.println("t1==t2!!");
}
t1.say_hello();
//---------
car c1=carfactory.creatCar();
}
}
//single instance model
class singleclass{
private static singleclass instance;
private singleclass(){//构造器私有化,外部不能调用
}
public void say_hello() {
System.out.println("hello!!");
}
public static singleclass getinstance()
{
if(instance==null)
{
instance=new singleclass();
}
return instance;
}
}
//factory model
class car{
public car(){
System.out.println("get a new car!!");
}
}
class carfactory{
public static car creatCar() {
return new car();
}
}