设计模式简单工厂实现
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截图