抽象工厂作业
假设有螺丝和螺母两种产品,其中螺丝有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