java 单例模式和工厂模式实例详解
单例模式根据实例化对象时机的不同分为两种:一种是饿汉式单例,一种是懒汉式单例。
私有的构造方法
指向自己实例的私有静态引用
以自己实例为返回值的静态的公有的方法
饿汉式单例
publicclassSingleton{
privatestaticSingletonsingleton=newSingleton();
privateSingleton(){}
publicstaticSingletongetInstance(){
returnsingleton;
}
}
懒汉式单例
publicclassSingleton{
privatestaticSingletonsingleton;
privateSingleton(){}
publicstaticsynchronizedSingletongetInstance(){
if(singleton==null){
singleton=newSingleton();
}
returnsingleton;
}
}
工厂方法模式代码
interfaceIProduct{
publicvoidproductMethod();
}
classProductimplementsIProduct{
publicvoidproductMethod(){
System.out.println("产品");
}
}
interfaceIFactory{
publicIProductcreateProduct();
}
classFactoryimplementsIFactory{
publicIProductcreateProduct(){
returnnewProduct();
}
}
publicclassClient{
publicstaticvoidmain(String[]args){
IFactoryfactory=newFactory();
IProductprodect=factory.createProduct();
prodect.productMethod();
}
}
抽象工厂模式代码
interfaceIProduct1{
publicvoidshow();
}
interfaceIProduct2{
publicvoidshow();
}
classProduct1implementsIProduct1{
publicvoidshow(){
System.out.println("这是1型产品");
}
}
classProduct2implementsIProduct2{
publicvoidshow(){
System.out.println("这是2型产品");
}
}
interfaceIFactory{
publicIProduct1createProduct1();
publicIProduct2createProduct2();
}
classFactoryimplementsIFactory{
publicIProduct1createProduct1(){
returnnewProduct1();
}
publicIProduct2createProduct2(){
returnnewProduct2();
}
}
publicclassClient{
publicstaticvoidmain(String[]args){
IFactoryfactory=newFactory();
factory.createProduct1().show();
factory.createProduct2().show();
}
}
希望本文对各位朋友有所帮助
热门推荐
6 保研的祝福语简短
10 年轻20岁祝福语简短
11 朋友结婚祝福语信息简短
12 女孩婚礼贺卡祝福语简短
13 30段点歌简短祝福语
14 虎年春节祝福语图文简短
15 写给后妈祝福语大全简短
16 简短回复生日祝福语
17 校长送毕业祝福语简短
18 毕业立体贺卡祝福语简短