设计模式(工厂方法)- 接口多态选择

本贴最后更新于 2457 天前,其中的信息可能已经时移俗易

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。


代码示例:

接口

public interface ChannelService {
	
	void wechat();

	void alipay();
}

具体的接口实现类

public class AchannelService implements ChannelService {
	
	@Override
	public void wechat() {
		System.out.println("A渠道微信");
	}
	
	@Override
	public void alipay() {
		System.out.println("A渠道支付宝");
	}
}
public class BchannelService implements ChannelService {
	
	@Override
	public void wechat() {
		System.out.println("B渠道微信");
	}
	
	@Override
	public void alipay() {
		System.out.println("B渠道支付宝");
	}
}

工厂方法

public class ChannelServiceFactory {

	private static ChannelService achannelService = new AchannelService();
	private static ChannelService bchannelService = new BchannelService();

	public static ChannelService route(String channelCode) {
		if (channelCode.equals("A")) {
			return achannelService;
		} else if (channelCode.equals("B")) {
			return bchannelService;
		}
		throw new IllegalArgumentException();
	}
}

测试

	public static void main(String[] args) {
		ChannelServiceFactory.route("A").wechat();
		ChannelServiceFactory.route("B").wechat();
	}

结论

我们明确地计划不同条件下创建不同实例时,选用工厂模式,只需要从工厂中获取服务,调用方不用关心具体是哪种实现

  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1063 引用 • 3454 回帖 • 189 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3190 引用 • 8214 回帖 • 1 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    200 引用 • 120 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...