设计模式中的工厂模式

首先设计模式分为三大类:
在这里插入图片描述
工厂模式分为:简单工厂模式、工厂方法模式和抽象工厂模式。

1 简单工厂模式:
实例化对象的时候不再使用 new Object()形式,只需要给出具体实例的描述给工厂,工厂就会自动返回具体的实例对象。是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。
具体实现如下:
a.定义一个Animal类和其下的抽象方法eat():

	public abstract class Animal {	 
		 public abstract void eat(); 
	}

b. 创建Dog和Cat 继承extent Animal类
	public class Dog extends Animal {
		 @Override
		 public void eat() {
	  		System.out.println("Dog eat meat");
 		}
	}
	public class cat extends Animal {
		 @Override
 		public void eat() {
			System.out.println("cat eat ll");
 		}
	}

c. 定义一个AnimalFactory 类
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019091916213792.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h1c2VucXVhbg==,size_16,color_FFFFFF,t_70)

2 工厂模式
简单工厂模式的缺点是:如果需要创建很多对象,就要在这个简单工厂类里编写很多个方法,每个方法都有相应的业务代码,每次增加子类或者删除子类对象的创建都需要打开这简单工厂类来进行修改。
而这个时候就需要工厂模式了,原理是把原本会因为业务代码而庞大的简单工厂类,拆分成了一个个的子工厂类,这些子工厂类都实现于一个抽象接口。
步骤是先定义一个工厂接口,再根据需求定义子工厂类实现工厂接口其实现如下:
a.先定义一个Factory接口:

	public interface Factory { 
		 public Animal creatAnimal() {  
	 	}
	}

b. 再定义子工厂类DogFactory和CatFactory:

	public class DogFactory implements Factory {
 		@Override
		 public Animal creatAnimal() {
  			return new Dog();
		 }
	}
	CatFactory 定义类似...

c 再定义Dog 类继承DogFactory
在这里插入图片描述

工厂方法模式的缺点是每增加一个产品类,就需要增加一个对应的工厂类,增加了额外的开发量.
参考链接:添加链接描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值