凡是出现了大量的产品需要创建,并且具有共同的接口时,可以通过工厂方法模式进行创建。
技术要点:
1.产品类一定是有相同的接口
2.工厂类负责产品类的创建,而不要直接通过new的方式创建产品类,由一个统一的类完成
package com.factory;
public interface IAction {
public void doSomeThings();
}
package com.factory;
public class Sms implements IAction {
@Override
public void doSomeThings() {
System.out.println("发短信");
}
}
package com.factory;
public class Email implements IAction {
@Override
public void doSomeThings() {
System.out.println("发邮件");
}
}
package com.factory;
public class Factory {
public Sms productSms() {
return new Sms();
}
public Email productEmail() {
return new Email();
}
}
普通工厂方法,有个缺点:每次创建都要创建工厂类,于是乎出现了静态工厂方法。
package com.factory;
public class Factory {
public static Sms productSms() {
return new Sms();
}
public static Email productEmail() {
return new Email();
}
}
执行的时候,直接调用静态方法即可。
package com.factory;
public class Test {
public static void main(String[] args) {
Factory.productEmail().doSomeThings();
}
}