Java 设计模式系列(4) —— 工厂模式

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO

联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬

学习必须往深处挖,挖的越深,基础越扎实! 

 

工厂方法模式

工厂模式用于实现逻辑的封装,并通过公共的忌口提供对象的实例化服务,在添加新类时只需要做少量的修改。

1. 静态工厂模式(简单工厂模式)

202306152220031211.png

静态工厂属于创建者模式,静态工厂模式的实现需要三个角色

  • 简单工厂:负责创建具体产品产品,工厂类的方法可以被外界直接调用
  • 抽象产品:在 Java 中,抽象产品是由抽象类或者接口担任的,用以让具体产品继承或实现
  • 具体产品:在 Java 中,具体产品是工厂类创建的主要对象。
静态工厂的通用写法

202306152220035742.png

工厂角色

    public class CandyFactory {
    	public enum CandyKind{
    		FRUITCANDY("fruitCandy"),COLACANDY("COLACANDY");
    		private String kind;
    		CandyKind(String kind){
    			this.kind = kind;
    		}
    		
    		public String getCandyKind() {
    			return this.kind;
    		}
    	}
    	
    	public Candy createCandy(String kind) {
    		if(kind.equals(CandyKind.COLACANDY.getCandyKind()))
    			return new ColaCandy();
    		if(kind.equals(CandyKind.FRUITCANDY.getCandyKind())) {
    			return new FruitCandy();
    		}
    		return null;
    	}
    
    }

抽象产品

    public interface Candy {
    	public void testCandy();
    }

具体产品

  1. FruitCandy
    public class FruitCandy implements Candy {
    
    	@Override
    	public void testCandy() {
    		System.out.println("Test FruitCandy");
    
    	}
    
    }
  1. ColaCandy
    package com.stu.edu.part2.Factorypattern.demo2;
    
    public class ColaCandy implements Candy {
    
    	@Override
    	public void testCandy() {
    		System.out.println("Test ColaCandy");
    		
    	}
    
    }

上述写法符合了迪米特法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值