设计模式之——工厂模式

###转载请注明出处:http://blog.csdn.net/binbinqq86/article/details/71775093

工厂模式(Factory Pattern),听到这个词,可能首先想到的就是批量生产,没错,这个模式就是用来制造对象的。工厂模式是一个大的概念,细分可以包含三种:

  1. 简单工厂模式(静态工厂模式)
  2. 工厂方法模式
  3. 抽象工厂模式

首先来说一下简单工厂模式,看结构图:

这里写图片描述

整个结构非常简单,既然是工厂,肯定需要产品,Phone就是我们的抽象产品,所有的手机都继承于它,而SimpleFactory有一个createPhone方法用来创建手机的实例对象,并返回给消费者,这就是一个工厂的职责,通常把createPhone设置为静态方法,这样就不用创建工厂对象,也被称为静态工厂模式,这是最简单的工厂模式,下面是代码:

package com.example.tb.designpatten.factory.simplefactory;

import android.util.Log;

/**
 * Created by tb on 2017/5/13.
 * 以手机为我们的产品
 */

public class Phone {
    private static final String TAG = "Phone";

    /**
     * @param type 手机型号
     */
    public Phone(String type){
        printPhoneType(type);
    }

    public void printPhoneType(String type){
        Log.d(TAG, "printPhoneType: "+type);
    }
}

package com.example.tb.designpatten.factory.simplefactory;

/**
 * Created by tb on 2017/5/13.
 * 以小米2为例
 */

public class MI2 extends Phone{
    /**
     * @param type 手机型号
     */
    public MI2(String type) {
        super(type);
    }
}

package com.example.tb.designpatten.factory.simplefactory;

/**
 * Created by tb on 2017/5/13.
 * 以小米3为例
 */

public class MI3 extends Phone{
    /**
     * @param type 手机型号
     */
    public MI3(String type) {
        super(type);
    }
}

package com.example.tb.designpatten.factory.simplefactory;

/**
 * Created by tb on 2017/5/13.
 * 简单工厂模式(将createPhone方法改为静态就是静态工厂)
 */

public class SimpleFactory {
    public Phone createPhone(String type){
        Phone phone=null;
        if(type.equals("mi2")){
            phone=new MI2("mi2");
        }else if(type.equals("mi3")){
            phone=new MI3("mi3");
        }else{
            phone=new Phone("unknown");
        }
        return phone;
    }
}

public void test(){
        SimpleFactory simpleFactory=new SimpleFactory();
        simpleFactory.createPhone("mi2");
    }

简单工厂模式就这么多,很容易理解了。下面我们看一下工厂方法模式,老规矩上图࿱

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
设计模式是一种经过总结、优化的、可重复使用的设计经验的总结。它是软件工程中一种解决特定问题的可复用方案。设计模式不是一成不变的,而是可以根据不同的需求进行变化,以达到最佳的效果。设计模式可以提高程序的可读性、可维护性、可扩展性,同时也可以提高程序的性能和稳定性。 设计模式可以分为三种类型:创建型模式、结构型模式和行为型模式。创建型模式用于描述对象的创建过程,结构型模式用于描述对象之间的关系,行为型模式用于描述对象的行为和交互。本篇文章将介绍一些常用的设计模式。 1. 工厂模式(Factory Pattern) 工厂模式是一种常用的创建型模式,它使用一个工厂方法来创建对象,而不是通过直接调用构造函数。工厂模式可以隐藏对象的创建过程,使代码更加灵活和易于维护。工厂模式可以分为简单工厂模式工厂方法模式和抽象工厂模式。 2. 单例模式(Singleton Pattern) 单例模式是一种创建型模式,它保证一个类只有一个实例,并提供一个全局访问点。单例模式可以保证对象的唯一性,避免了多个实例对系统资源的浪费。 3. 代理模式(Proxy Pattern) 代理模式是一种结构型模式,它为一个对象提供一个代理,以控制对这个对象的访问。代理模式可以增加对象的安全性,降低对象的访问成本,同时也可以提高程序的灵活性和可扩展性。 4. 装饰器模式(Decorator Pattern) 装饰器模式是一种结构型模式,它动态地给一个对象添加一些额外的职责,而不需要修改这个对象的代码。装饰器模式可以避免使用子类来扩展对象的功能,从而使代码更加灵活和可扩展。 5. 观察者模式(Observer Pattern) 观察者模式是一种行为型模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。当主题对象状态发生改变时,会通知所有的观察者对象,使它们能够及时更新自己的状态。 以上是五种常用的设计模式,它们在软件开发中都有着广泛的应用。设计模式可以帮助我们更好地组织代码、降低程序的耦合度、提高程序的可扩展性和可维护性,是一种非常重要的编程技巧。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值