https://blog.youkuaiyun.com/auuea/article/details/84673570
隐藏复杂过程
仅仅关心输入与结果
普通简单工厂
多方法简单工厂
工厂方法模式
package com.songlk.factory;
public interface IMouse {
String getMouceInfo();
}
package com.songlk.factory;
public class HPMouse implements IMouse {
@Override
public String getMouceInfo() {
System.out.println("-----hp mouse");
return "hp mouse";
}
}
//-----------------------普通简单工厂模式
package com.songlk.factory;
public class MouseFactory {
public IMouse getMouse(int type){
if (type==0){
return new HPMouse();
}else if (type==1){
return new LenoveMouse();
}else{
System.out.println("---null");
return null;
}
}
public static void main(String[] args){
MouseFactory mouseFactory=new MouseFactory();
String hpMouse=mouseFactory.getMouse(0).getMouceInfo();
String LenoMouse=mouseFactory.getMouse(1).getMouceInfo();
}
}
//-----------------------多方法简单工厂模式
package com.songlk.factory;
public class MouseFactoryM {
public IMouse getHPMouse(){
return new HPMouse();
}
public IMouse getLenoveMouse(){
return new LenoveMouse();
}
public static void main(String []args){
MouseFactoryM m=new MouseFactoryM();
String hpMouse=m.getHPMouse().getMouceInfo();
String lenoveMouse=m.getLenoveMouse().getMouceInfo();
}
}
//-----------------------静态简单工厂
package com.songlk.factory;
public class MouseFactoryS {
public static IMouse getHPMouse(){
return new HPMouse();
}
public static IMouse getLenoveMouse(){
return new LenoveMouse();
}
public static void main(String []args){
String hpMouse=MouseFactoryS.getHPMouse().getMouceInfo();
String lenoveMouse=MouseFactoryS.getLenoveMouse().getMouceInfo();
}
}
//-------------------------------工厂方法模式
package com.songlk.factory;
public interface IFactory {
IMouse getMouseFactory();
}
package com.songlk.factory;
public class HPFactory implements IFactory {
@Override
public IMouse getMouseFactory() {
return new HPMouse();
}
}
package com.songlk.factory;
public class LenoveFactory implements IFactory {
@Override
public IMouse getMouseFactory() {
return new LenoveMouse();
}
public static void main(String []args){
IFactory hpFactory=new HPFactory();
hpFactory.getMouseFactory().getMouceInfo();
IFactory lenoveFactory=new LenoveFactory();
lenoveFactory.getMouseFactory().getMouceInfo();
}
}
//------------------------抽象工厂模式
略