java 登陆系统_Java 工厂模式登陆系统实现

没有工厂模式

设定一个登陆系统

UserServiceImp.java

public class UserServiceImp {

public boolean login(String username, String pw) {

if(username.equals("abc")&&pw.equals("123")){

return true;

}else{

return false;

}

}

}

Test1.java

import java.util.Scanner;

public class Test1 {

public static void main(String[] args) {

UserServiceImp userServe = new UserServiceImp();

Scanner scanner = new Scanner(System.in);

System.out.println("Please input username:");

String uname = scanner.nextLine();

System.out.println("Please input user password");

String pw = scanner.nextLine();

boolean rel = userServe.login(uname, pw);

System.out.println(rel==true?"Success!":"Falsed!");

}

}

但是如果UserServiceImp.java没有写好,Test1.java就不可以调用,且修改比较麻烦。

工厂模式

简单工厂模式,分离调用者和实现者:

建立一个interface: UserService.java

public interface UserService {

boolean login(String username, String password);

}

建立一个工厂: UserServiceFactory.java

public class UserServiceFactory {

public static UserService getUserService(){

return new UserServiceImp();

}

}

修改Test.java中的代码:

UserService userServe = UserServiceFactory.getUserService();

这样创建userServe对象的时候,就通过UserService 接口,和UserServiceFactory的getUserService()来间接创建了。

修改被调用的类

若有UserServiceImp2.java, 则只用修改facotry中的代码即可。

即,创建UserServiceimp2.java:

public class UserServiceimp2 implements UserService{

@Override

public boolean login(String username, String password) {

if (username.equals("aaa")&&password.equals("111")) {

return true;

} else {

return false;

}

}

}

修改factory代码:

return new UserServiceimp2();

即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值