设计模式(四)工厂模式

以武哥的女娲造人为例:

女娲生产人,人有黑白黄三种,同时会说:

1、接口类为:

package 工厂模式;

public interface Human {
	//人有不同颜色
	public void getColor();
	
	//人会说话
	public void talk();
}

 

2、下面捏各种人模子:

白:

package 工厂模式;

public class whilteman implements Human {

	@Override
	public void getColor() {
		System.out.println("白种人");
	}
	
	@Override
	public void talk() {
		System.out.println("英语");
	}
}

 

黄:

package 工厂模式;

public class yellowman implements Human {
	
	@Override
	public void getColor() {
		System.out.println("小黄人");
	}
	
	@Override
	public void talk() {
		System.out.println("黄语");
	}
}

黑:

package 工厂模式;

public class blackman implements Human {
	@Override
	public void getColor() {
		System.out.println("黑种人");
	}
	
	@Override
	public void talk() {
		System.out.println("黑语");
	}
}

 

3、模子捏好了,那么需要借助炉子(八卦炉)

八卦炉抽象类:

//八卦炉(生产人)
public abstract class AbstractHumanFactory {
	
	public abstract <T extends Human> T createHuman(Class<T> clazz);
}

八卦炉实现类:

package 工厂模式;


//实现八卦炉
public class HumanFactory extends AbstractHumanFactory {
	
	@Override
	public <T extends Human> T createHuman(Class<T> clazz) {
		Human human = null;
		try {
			human = (Human) Class.forName(clazz.getName()).newInstance();
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println("人种产生错误");
		}
		return (T) human;
	}
}

 

4、所有都弄好了,那么就应该造人了

package 工厂模式;

public class test {
	public static void main(String[] args) {
		AbstractHumanFactory bagualu = new HumanFactory();
		Human blackman = bagualu.createHuman(blackman.class);
		Human whiteHuman = bagualu.createHuman(whilteman.class);
		Human yelloHuman = bagualu.createHuman(yellowman.class);
	}
}

 

本文学武哥文章,纯属学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值