一、UML图
二、实例
1、Product
package com.designPattern.factoryMethod;
/**
* Created by ZhangJintao on 2020/3/8.
*/
public interface Phone {
public void showPhone();
}
2、ConcreteProduct
package com.designPattern.factoryMethod;
/**
* Created by ZhangJintao on 2020/3/8.
*/
public class XiaoMi implements Phone {
@Override
public void showPhone() {
System.out.println("我是小米!");
}
}
package com.designPattern.factoryMethod;
/**
* Created by ZhangJintao on 2020/3/8.
*/
public class HuaWei implements Phone{
@Override
public void showPhone() {
System.out.println("我是华为!!");
}
}
package com.designPattern.factoryMethod;
/**
* Created by ZhangJintao on 2020/3/8.
*/
public class Oppo implements Phone {
@Override
public void showPhone() {
System.out.println("我是OPPO!!!");
}
}
3、Creator
package com.designPattern.factoryMethod;
/**
* Created by ZhangJintao on 2020/3/8.
*/
public interface PhoneFactory {
public Phone createPhone();
}
4、ConcretCreator
package com.designPattern.factoryMethod;
/**
* Created by ZhangJintao on 2020/3/8.
*/
public class XiaoMiFactory implements PhoneFactory {
@Override
public Phone createPhone() {
return new XiaoMi();
}
}
package com.designPattern.factoryMethod;
/**
* Created by ZhangJintao on 2020/3/8.
*/
public class HuaWeiFactory implements PhoneFactory {
@Override
public Phone createPhone() {
return new HuaWei();
}
}
package com.designPattern.factoryMethod;
/**
* Created by ZhangJintao on 2020/3/8.
*/
public class OppoFactory implements PhoneFactory {
@Override
public Phone createPhone() {
return new Oppo();
}
}
5、main
package com.designPattern.factoryMethod;
/**
* Created by ZhangJintao on 2020/3/8.
*/
public class main {
public static void main(String[] args) {
Phone mi = new XiaoMiFactory().createPhone();
mi.showPhone();
Phone huaWei = new HuaWeiFactory().createPhone();
huaWei.showPhone();
Phone oppo = new OppoFactory().createPhone();
oppo.showPhone();
}
}