java 单例工厂_java:常用的两种设计模式(单例模式和工厂模式)

一、单例模式:即一个类由始至终只有一个实例。有两种实现方式(1)定义一个类,它的构造方法是私有的,有一个私有的静态的该类的变量在初始化的时候就实例化,通过一个公有的静态的方法获取该对象。

Java代码

1. //单例模式的第一种形式

2. public class Singleton01 {

3.

4.     // 私有的静态属性

5.     private static Singleton01 instance = new Singleton01();

6.

7.     // 私有的构造方法

8.     private Singleton01() {

9.     }

10.

11.     // 公有的静态方法

12.     public static Singleton01 getInstance() {

13.         return instance;

14.     }

15. }

(2)改进后的

Java代码

1. public class Singleton02 {

2.

3.     // 私有的静态的类变量

4.     private static Singleton02 instance = null;

5.

6.     // 私有的构造方法

7.     private Singleton02() {

8.     }

9.

10.     // 静态的公有的方法

11.     public static Singleton02 getInstance() {

12.         if (instance == null) {

13.             instance = new Singleton02();

14.         }

15.         return instance;

16.     }

17. }

二、工厂模式:生产不同对象的公共接口(1)   产品接口

Java代码

1. //产品接口

2. public interface Product {

3.

4. }

(2)产品接口的实现类

Java代码

1. //洗衣机

2. public class Washer implements Product {

3.

4.     public Washer(){

5.         System.out.println("洗衣机被制造了!");

6.     }

7. }

Java代码

1. //空调

2. public class AirCondition implements Product {

3.

4.     public AirCondition(){

5.         System.out.println("空调被制造!");

6.     }

7. }

(3)工厂接口

Java代码

1. //工厂接口

2. public interface Factory {

3.

4.     //生产产品

5.   Product produce(String productName);

6.

7. }

(4)工厂的实现类

Java代码

1. //实现工厂

2. public class TestFactory implements Factory {

3.

4.     //生产产品

5.     public Product produce(String productName) {

6.         if (productName.equals("Washer")) {

7.             return new Washer();

8.         }

9.         if (productName.equals("AirCondition")) {

10.             return new AirCondition();

11.         }

12.         return null;

13.     }

14.

15.     public static void main(String[] args) {

16.         TestFactory testFactory = new TestFactory();

17.         testFactory.produce("Washer");

18.         testFactory.produce("AirCondition");

19.     }

20. }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值