您的位置:首页 > 其它

设计模式之工厂模式 factory(一)

2016-05-12 23:41 176 查看
简说

工厂设计模式

解决问题:创建对象时色耦合度问题,用了工厂模式耦合度变低

解决方案:interface , static newInstance

demo: 登录问题 不同的行业 不同的企业需要的登录模式也是不一样的,

public class LoginActivity {

/**
* @param args
*/
public static void main(String[] args) {
//直接创建对象
//LoginBizUserPwd loginBizUserPwd=new LoginBizUserPwd();
/loginBizUserPwd.login("");
//软件企业做一个类型软件,在全国很多企业用
//用手机号验证码登录
//扫描二维码登录
//用证书登录

//在工厂设计模式中
//调接口,面向接口编程
//当登录模式发生改变时,只需修改(增加新的实现类)IloginBiz接口的实现类,或者工厂类的返回值, 在loginActivity 中就不需要修改了。
IloginBiz iloginBiz=Factory.newInstance();
iloginBiz.login("");

}

}


下面的是Biz 层,登录接口,登录接口的不同实现类,与工厂类

//登录业务的接口,规范了登录方法的参数,返回值类型。
public interface IloginBiz {
public boolean login(Object object);
}

public class Factory {
// 静态的方法,新建实例的方法 返回不同的实例
public static IloginBiz newInstance()
{
//工厂类返回的值不同,在loginActivity 中就会调用接口的不用的实现类的对象,
//对象再调用他自己实现的接口的方法
//return new LoginBizUserPwd();
return new LoginBizByMobile();
}
}

//根据用户名 密码登录的实现类
public class LoginBizUserPwd implements IloginBiz{
public boolean login(Object  object)
{
System.out.println("根据用户名,密码判断能不能登录");
return true;
}
}

//根据手机号登录的实现类
public class LoginBizByMobile implements IloginBiz{

@Override
public boolean login(Object object) {
System.out.println("根据手机验证码来判断登录是否成功");
return false;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: