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