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. }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。