参考文章

    一个登陆接口,两个实现类,一个工厂类,一个测试类

    工厂类

    1. public class LoginManager {
    2. public static Login factory(String type){
    3. if(type.equals("password")){
    4. return new PasswordLogin();
    5. }else if(type.equals("passcode")){
    6. return new DomainLogin();
    7. }else{
    8. /** * 这里抛出一个自定义异常会更恰当 */
    9. throw new RuntimeException("没有找到登录类型");
    10. }
    11. }
    12. }

    简单工厂模式的优点

    模式的核心是工厂类。这个类含有必要的逻辑判断,可以决定在什么时候创建哪一个登录验证类的实例,而调用者则可以免除直接创建对象的责任。简单工厂模式通过这种做法实现了对责任的分割,当系统引入新的登录方式的时候无需修改调用者。

    简单工厂模式的缺点

    这个工厂类集中了所以的创建逻辑,当有复杂的多层次等级结构时,所有的业务逻辑都在这个工厂类中实现。什么时候它不能工作了,整个系统都会受到影响。