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

java23种设计模式——三、工厂模式

源码在我的github和gitee中获取 工厂模式 工厂模式介绍 工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式.著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在J ...

PHP面向对象-设计模式 单例模式 简单工厂模式 工厂方法模式

1.单例模式 单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例的特殊类.通过单例模式可以保证系统中一个类只有一个实例.即一个类只有一个对象实例. 要实现每一个类只有一个实例,就需 ...

【Unity与23种设计模式】抽象工厂模式(Abstract Factory)

GoF中定义: "提供一个能够建立整个类群组或有关联的对象,而不必指明它们的具体类." 意思就是 根据不同的执行环境产生不同的抽象类子类 抽象工厂模式经常在面试中会涉及到 下面的例 ...

两种设计模式(1)==>;>;“简单工厂”

我们以做一个计算器为例,给大家介绍简单工厂的应用: 效果: 这里我们使用 继承 ,虚方法, 简单工厂的设计模式来完成 首先,我们除了搭好窗体外,我们应该把我们的一些类准备好: 1.计算的父类Calcu ...

二十四种设计模式:抽象工厂模式(Abstract Factory Pattern)

抽象工厂模式(Abstract Factory Pattern) 介绍提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. 示例有Message和MessageModel,Messag ...

Spring主要用到两种设计模式

Spring主要用到两种设计模式 1.工厂模式 Spring容器就是实例化和管理全部Bean的工厂. 工厂模式可以将Java对象的调用者从被调用者的实现逻辑中分离出来. 调用者只关心被调用者必须满足的 ...

java23种设计模式——四、原型模式

源码在我的github和gitee中获取 目录 java23种设计模式-- 一.设计模式介绍 java23种设计模式-- 二.单例模式 java23种设计模式--三.工厂模式 java23种设计模式- ...

java23种设计模式——五、建造者模式

源码在我的github和gitee中获取 目录 java23种设计模式-- 一.设计模式介绍 java23种设计模式-- 二.单例模式 java23种设计模式--三.工厂模式 java23种设计模式- ...

java23种设计模式——七、桥接模式

你可能感兴趣的:(java单例模式工厂模式)