设计模式简单工厂实现

设计模式简单工厂实现

1实现细节

一下是简单工厂的实现Demo

1.1接口

package com.skillstudy.designpattern.CreateDP.SimpleFactory;

import com.skillstudy.designpattern.CreateDP.MyConcreteObject;

/**
 * Created by kikop on 2018/1/21.
 */
public interface ILNZBLAudit {

    public void setObject(MyConcreteObject myConcreteObject);
}

 

 

1.2接口实现

package com.skillstudy.designpattern.CreateDP.SimpleFactory;

import com.skillstudy.designpattern.CreateDP.MyConcreteObject;

/**
 * Created by kikop on 2018/1/21.
 */
public class SQAuditSuccess implements ILNZBLAudit {

    public void setObject(MyConcreteObject myConcreteObject) {

        myConcreteObject.setStrContect("SQAuditSuccess");

    }
}

 

1.3简单工厂

package com.skillstudy.designpattern.CreateDP.SimpleFactory;

/**
 * Created by kikop on 2018/1/21.
 */
public class LNZBLAuditFactory {

    public static ILNZBLAudit getLNZBLAudit(String strAuditType) throws ClassNotFoundException, IllegalAccessException, InstantiationException {

        Class ilnzblAudit = Class.forName(strAuditType);
        return (ILNZBLAudit) ilnzblAudit.newInstance();

    }

}

1.5枚举定义

package com.skillstudy.common.customenum;

/**
 * Created by kikop on 2018/1/21.
 * 定义 LnzblAudiStatustEnum,私有构造函数参数并且参数是整形
 */
public enum LnzblAudiStatustEnum {

    TOSQAUDIT(0),
    TOJDAUDIT(1),
    AUDITSUCC(2),
    AUDITFAIL(3),
    SQREVERT(4),
    JDREVERT(5);

    private int auditValue;

    private LnzblAudiStatustEnum(int tmpAuditValue) {
        this.auditValue = tmpAuditValue;
    }

    /**
     * 获取枚举整形值
     *
     *
@return
     
*/
    
public int getAuditValue() {
        return this.auditValue;
    }

    /**
     * 获取当前枚举小写String类型
     *
     *
@return
     
*/
    
public String getLowerCaseForAuditType() {
        return this.toString().toLowerCase();
    }

    /**
     * 根据枚举字符串内容返回枚举对象
     *
     *
@param strAuditType
     
* @return
     
*/
    
public static LnzblAudiStatustEnum getEnumObjectByStringType(String strAuditType) {

        if (null != strAuditType) {
            for (LnzblAudiStatustEnum lnzblAudiStatustEnum : LnzblAudiStatustEnum.values()) {

                if (lnzblAudiStatustEnum.getLowerCaseForAuditType().equals(strAuditType.toLowerCase())) {
                    return lnzblAudiStatustEnum;
                }
            }
        }

        return null;
    }
}

 

1.5测试

@Test
public void LnzblAudiSimpleFactoryTest() {

    int tOSQAUDIT = 0;
    LnzblAudiStatustEnum lnzblAudiStatustEnum = LnzblAudiStatustEnum.TOSQAUDIT;
    MyConcreteObject myConcreteObject = new MyConcreteObject();

    String getRefletValue = "";
    if (tOSQAUDIT == lnzblAudiStatustEnum.getAuditValue()) {
        getRefletValue = "com.skillstudy.designpattern.CreateDP.SimpleFactory.SQAuditSuccess";
    } else {
    }

    if (getRefletValue != "") {
        try {
            ILNZBLAudit ilnzblAudit = LNZBLAuditFactory.getLNZBLAudit(getRefletValue);
            ilnzblAudit.setObject(myConcreteObject);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        }
    }
    System.out.println(myConcreteObject.getStrContect());

}

 

1.6截图

 设计模式简单工厂实现