java设计模式学习笔记-工厂模式

该模式有4个成员:抽象工厂接口、工厂实现类、抽象产品接口、产品实现类

抽象工厂接口

package model02.factory;

/**
 * 工厂类接口
 */
public interface FruitFactory{
	public Fruit factory();
}

工厂实现类

package model02.factory;

/**
 * 工厂接口实现类1
 */
public class AppleFactory implements FruitFactory{
	public Fruit factory(){
		return new Apple();
	}
}
package model02.factory;

/**
 * 工厂接口实现类2
 */
public class BananaFactory implements FruitFactory{
	public Fruit factory(){
		return new Banana();
	}
}

抽象产品接口

package model02.factory;

/**
 * 抽象产品接口
 **/
public interface Fruit{
	public void plant();
}

产品实现类

package model02.factory;

/**
 * 产品实现类1
 **/
public class Apple implements Fruit{
	public void plant(){
		System.out.println("种苹果树");
	}
}
package model02.factory;

/**
 * 产品实现类1
 **/
public class Banana implements Fruit{
	public void plant(){
		System.out.println("种香蕉树");
	}
}

工厂模式的优缺点

优点

1:客户代码可以做到与特定应用无关,适用于任何实体类
2:基类为工厂方法提供缺省实现,子类可以重写新的实现,也可以继承父类的实现。-- 加一层间接性,增加了灵活性
3:连接并行的类层次结构
4:良好的封装性,代码结构清晰
5:扩展性好,在增加产品类的情况下,只需要适当修改具体的工厂类或扩展一个工厂类,就可“拥抱变化”
6:屏蔽产品类。产品类的实现如何变化,调用者都不需要关心,只需关心产品的接口,只要接口保持不变,系统中的上层模块就不会发生变化
7:典型的解耦框架。高层模块只需要知道产品的抽象类,其他的实现类都不需要关心,符合迪米特法则,符合依赖倒置原则,符合里氏替换原则

缺点

需要工厂接口和相应的子类作为工厂方法的载体,如果应用模型确实需要工厂接口和子类存在,则很好;否则的话,需要增加一个类层次

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值