简单工厂模式

一、简单工厂

   (一)定义

    简单工厂模式一般的实现方式是:通过使用构建时传入的参数进行case语句判读,然后选择new出对应的对象。严格来讲简单工厂模式不是GOF的设计模式之一。

   (二)优缺点

    1.优点

    (1)最大的优点是工厂类包含了必要的逻辑判断,根据客户端的选择条件动态的实例化相关的类,将客户端与具体的产品解藕。

    (2)集中封装了对象的创建,使得在更换对象的时候,不需要做大的改动就可以实现。

    2.缺点    

    简单工厂在添加新的产品时,需要修改原来的工厂类,如添加一个新的case分支,违背了开放-封闭原则。

   (三)UML


   (四)DEMO

import java.util.Scanner;

interface Product {
	void showInfo();
}

class ProductA implements Product {
	public void showInfo() {
		System.out.printf("I am A!");
	}
}

class ProductB implements Product {
	public void showInfo() {
		System.out.printf("I am B!");
	}
}

class SimpleFactory {
	Product pro;

	Product createProduct(int which) {
		switch (which) {
		case 1:
			pro = new ProductA();
			break;
		case 2:
			pro = new ProductB();
			break;
		default:
			break;
		}
		return pro;
	}
}

public class Client {
	public void use() {
		Scanner scanner = new Scanner(System.in);
		int choice;
		choice = scanner.nextInt();
		Product pro = new SimpleFactory().createProduct(choice);
		pro.showInfo();
	}

	public static void main(String[] args) {
		Client client = new Client();
		client.use();
	}
}
   (五)注意点

     java语言中的接口中的属性肯定是常量,publicstatic final 类型变量=值;既然是final就不能二次赋值。


    转载请表明本博客。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值