java 单例模式和工厂模式实例详解

网友投稿 239 2023-05-23


java 单例模式和工厂模式实例详解

单例模式根据实例化对象时机的不同分为两种:一种是饿汉式单例,一种是懒汉式单例。

私有的构造方法

指向自己实例的私有静态引用

以自己实例为返回值的静态的公有的方法

饿汉式单例

public class Singleton {

private static Singleton singleton = new Singleton();

private Singleton(){}

public static Singleton getInstance(){

return singleton;

}

}

懒汉式单例

public class Singleton {

private static Singleton singleton;

private Singleton(){}

public static synchronized Singleton getInstance(){

if(singleton==null){

singleton = new Singleton();

}

return singleton;

}

}

工厂方法模式代码

interface IProduct {

public void productMethod();

}

class Product implements IProduct {

public void productMethod() {

System.out.println("产品");

}

}

interface IFactory {

public IPhttp://roduct createProduct();

}

class Factory implements IFactory {

public IProduct createProduct() {

return new Product();

}

}

public class Client {

public static void main(String[] args) {

IFactory factory = new Factory();

IProduct prodect = factory.createProduct();

prodect.productMethod();

}

}

抽象工厂模式代码

interface IProduct1 {

public void show();

}

interface IProduct2 {

public void show();

}

class Product1 implements IProduct1 {

public void show() {

System.out.println("这是1型产品");

}

}

class Product2 implements IProduct2 {

public void show() {

System.out.println("这是2型产品");

}

}

interface IFactory {

public IProduct1 createProduct1();

public IProduct2 createProduct2();

}

class Factory implements IFactory{

public IProduct1 createProduct1() {

return new Product1();

}

public IProduct2 createProduct2() {

return new Product2();

}

}

public class Client {

public static void main(String[] args){

IFactory factory = new Factory();

factory.ckUxInzBQKreateProduct1().show();

factory.createProduct2().show();

}

}

希望本文对各位朋友有所帮助


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:spring boot装载自定义yml文件
下一篇:详解Java5、Java6、Java7的新特性
相关文章

 发表评论

暂时没有评论,来抢沙发吧~