Enum을 통해 다양한 로그인 방법 해결
4343 단어 qq
2. 상기 문제를 해결하기 위해 다음과 같은 몇 가지 관건을 도입한다. a, Login 보기 대상을 도입한다.b. 매거형을 사용한다.
3. 구체적인 실현은 다음과 같다.
/**
* Date: 2010-11-24
* Time: 21:30:26
*/
public class Login {
private LoginModel model;
private LoginService service;
private String password;
private String email;
private String cellphone;
private String username;
private String qq;
public boolean doLogin(){
return model.doLogin(this,service);
}
public void setModel(LoginModel model) {
this.model = model;
}
public void setEmail(String email) {
this.email = email;
}
public void setCellphone(String cellphone) {
this.cellphone = cellphone;
}
public void setUsername(String username) {
this.username = username;
}
public void setQq(String qq) {
this.qq = qq;
}
public LoginModel getModel() {
return model;
}
public LoginService getService() {
return service;
}
public String getEmail() {
return email;
}
public String getCellphone() {
return cellphone;
}
public String getUsername() {
return username;
}
public String getQq() {
return qq;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
/**
* Date: 2010-11-24
* Time: 21:28:11
*/
/**
*
*/
public enum LoginModel {
Email{
public boolean doLogin(Login login ,LoginService service){
return service.checkByEamil(login.getEmail(),login.getPassword());
}
},
Username{
public boolean doLogin(Login login ,LoginService service){
return service.checkByUsername(login.getUsername(),login.getPassword());
}
},
Cellphone{
public boolean doLogin(Login login ,LoginService service){
return service.checkByCellphone(login.getCellphone(),login.getPassword());
}
},
QQ{
public boolean doLogin(Login login ,LoginService service){
return service.checkByQQ(login.getQq(),login.getPassword());
}
} ;
abstract boolean doLogin(Login login ,LoginService service);
}
package com.ming.login;
/**
* Date: 2010-11-24
* Time: 21:40:09
*/
/**
* Login
*/
public class LoginService {
public boolean checkByEamil(String email, String password) {
return true;
}
public boolean checkByUsername(String username, String password) {
return true;
}
public boolean checkByCellphone(String cellphone, String password) {
return true;
}
public boolean checkByQQ(String qq, String password) {
return true;
}
}
4. 실제 응용에서 어떻게 호출하는가
Login login = new Login();
login.setEmail("[email protected]");
login.setPassword("xxxxxxxxx");
login.setModel(LoginModel.Email);
login.doLogin();
5. 신분증 방식을 추가하려면 어떤 것들을 바꾸어야 합니까?
a, login idCard 증가 및 Getter/setter 방식 증가
b, LoginModel, idCard 열거 증가
IdCard{
public boolean doLogin(Login login ,LoginService service){
return service.checkByIdCard(login.getIdCard(),login.getPassword());
}
}
c. LoginSevice에서 checkByIdCard 메서드를 추가합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
lua 해석 url 매개 변수--테스트 url = 'http://192.168.1.113:8080/openG3/m/appPanel.vm?appId=1&appkey=111111&sid=12345,game/js/' res = parseUrl('ht...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.