Java程序设计模式—抽象工厂(工厂生产8mm6mm螺丝螺母问题)

抽象工厂作业

假设有螺丝和螺母两种产品,其中螺丝有8mm和6mm两种,螺母有8mm和6mm两种,并且8mm螺丝只能配8mm螺母,6mm螺丝只能配6mm螺母,请使用抽象工厂模式模拟该情景

UML图解:
在这里插入图片描述
分析:
抽象产品:螺丝 螺母
具体产品:6mm螺丝 6mm螺母 8mm螺丝 8mm螺母
抽象工厂:一个Factory
具体工厂:6mm工厂 8mm工厂

源代码:

1.抽象产品
建一个名为LM的interface

public interface LM {
	void SizeLM();
}

建一个名为LS的interface

public interface LS {
	void SizeLS();

}

2.抽象工厂
建一个名为Factory的interface

public interface Factory {
	 LS ProduceLS();
	 LM ProduceLM();
}

3.具体工厂
建一个名为SixFactory类继承Factory

public class SixFactory implements Factory{

	public SixLS ProduceLS() {
		return new SixLS();
	}
	public LM ProduceLM() {
		return new SixLM();
	}

}

建一个名为EightFactory类继承Factory

public class EightFactory implements Factory{

	public LS ProduceLS() {
		return new EightLS();
	}
	
	public LM ProduceLM() {
		return new EightLM();
	}

}

4.具体产品
6mm螺丝:SixLS

public class SixLS implements LS{

	@Override
	public void SizeLS() {
		// TODO Auto-generated method stub
		System.out.println("生产6mm螺母");
	}
	
}

6mm螺母:SixLM

public class SixLM implements LM{

	@Override
	public void SizeLM(){
		// TODO Auto-generated method stub
		System.out.println("生产6mm螺母");
	}
	
}

8mm螺丝:EightLS

public class EightLS implements LS{

	@Override
	public void SizeLS() {
		// TODO Auto-generated method stub
		System.out.println("生产8mm螺丝");
	}
	

}

8mm螺母:EightLM

public class EightLM implements LM{

	@Override
	public void SizeLM(){
		// TODO Auto-generated method stub
		System.out.println("生产8mm螺母");
	}
	
}

5.建test类作为程序入口

public class test {
	
	public static void main(String[] args) {
		
		EightFactory ef = new EightFactory();
		ef.ProduceLM().SizeLM();
		ef.ProduceLS().SizeLS();
		
		SixFactory sf = new SixFactory();
		sf.ProduceLM().SizeLM();
		sf.ProduceLS().SizeLS();
	}

}

运行结果:

生产8mm螺母
生产8mm螺丝
生产6mm螺母
生产6mm螺母

——————————————————————————————————
需要源码的私聊我,希望大家能点个赞再走ヾ(≧▽≦*)o
新学的,不保证全对哦O(∩_∩)O

发布了12 篇原创文章 · 获赞 13 · 访问量 1009

猜你喜欢

转载自blog.csdn.net/Dyqqqi/article/details/104659059