design patterns : adapter
This commit is contained in:
42
design-pattern/gof/src/adapter/after/Account.java
Normal file
42
design-pattern/gof/src/adapter/after/Account.java
Normal file
@@ -0,0 +1,42 @@
|
||||
package adapter.after;
|
||||
|
||||
import adapter.after.security.UserDetails;
|
||||
|
||||
public class Account implements UserDetails {
|
||||
|
||||
private String name;
|
||||
|
||||
private String password;
|
||||
|
||||
private String email;
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsername() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
public String getPassword() {
|
||||
return password;
|
||||
}
|
||||
|
||||
public void setPassword(String password) {
|
||||
this.password = password;
|
||||
}
|
||||
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
|
||||
public void setEmail(String email) {
|
||||
this.email = email;
|
||||
}
|
||||
|
||||
}
|
||||
28
design-pattern/gof/src/adapter/after/AccountService.java
Normal file
28
design-pattern/gof/src/adapter/after/AccountService.java
Normal file
@@ -0,0 +1,28 @@
|
||||
package adapter.after;
|
||||
|
||||
import adapter.after.security.UserDetails;
|
||||
import adapter.after.security.UserDetailsService;
|
||||
|
||||
public class AccountService implements UserDetailsService {
|
||||
|
||||
public Account findAccountByUsername(String username) {
|
||||
Account account = new Account();
|
||||
account.setName(username);
|
||||
account.setPassword(username);
|
||||
account.setEmail(username);
|
||||
return account;
|
||||
}
|
||||
|
||||
public void createNewAccount(Account account) {
|
||||
|
||||
}
|
||||
|
||||
public void updateAccount(Account account) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserDetails loadUser(String username) {
|
||||
return findAccountByUsername(username);
|
||||
}
|
||||
}
|
||||
22
design-pattern/gof/src/adapter/after/AccountUserDetails.java
Normal file
22
design-pattern/gof/src/adapter/after/AccountUserDetails.java
Normal file
@@ -0,0 +1,22 @@
|
||||
package adapter.after;
|
||||
|
||||
import adapter.after.security.UserDetails;
|
||||
|
||||
public class AccountUserDetails implements UserDetails {
|
||||
|
||||
private Account account;
|
||||
|
||||
public AccountUserDetails(Account account) {
|
||||
this.account = account;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsername() {
|
||||
return this.account.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPassword() {
|
||||
return this.account.getPassword();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package adapter.after;
|
||||
|
||||
import adapter.after.security.UserDetails;
|
||||
import adapter.after.security.UserDetailsService;
|
||||
|
||||
public class AccountUserDetailsService implements UserDetailsService {
|
||||
|
||||
AccountService accountService;
|
||||
|
||||
public AccountUserDetailsService(AccountService accountService) {
|
||||
this.accountService = accountService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserDetails loadUser(String username) {
|
||||
Account account = accountService.findAccountByUsername(username);
|
||||
return new AccountUserDetails(account);
|
||||
}
|
||||
}
|
||||
21
design-pattern/gof/src/adapter/after/App.java
Normal file
21
design-pattern/gof/src/adapter/after/App.java
Normal file
@@ -0,0 +1,21 @@
|
||||
package adapter.after;
|
||||
|
||||
import adapter.after.security.LoginHandler;
|
||||
import adapter.after.security.UserDetailsService;
|
||||
|
||||
public class App {
|
||||
|
||||
public static void main(String[] args) {
|
||||
// 클래스 따로 생성
|
||||
// AccountService accountService = new AccountService();
|
||||
// UserDetailsService userDetailsService = new AccountUserDetailsService(accountService);
|
||||
// LoginHandler loginHandler = new LoginHandler(userDetailsService);
|
||||
// String login = loginHandler.login("kim", "kim");
|
||||
// System.out.println("login = " + login);
|
||||
|
||||
UserDetailsService userDetailsService = new AccountService();
|
||||
LoginHandler loginHandler = new LoginHandler(userDetailsService);
|
||||
String login = loginHandler.login("kim", "kim");
|
||||
System.out.println("login = " + login);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package adapter.after.security;
|
||||
|
||||
public class LoginHandler {
|
||||
|
||||
UserDetailsService userDetailsService;
|
||||
|
||||
public LoginHandler(UserDetailsService userDetailsService) {
|
||||
this.userDetailsService = userDetailsService;
|
||||
}
|
||||
|
||||
public String login(String username, String password) {
|
||||
UserDetails userDetails = userDetailsService.loadUser(username);
|
||||
if (userDetails.getPassword().equals(password)) {
|
||||
return userDetails.getUsername();
|
||||
} else {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package adapter.after.security;
|
||||
|
||||
public interface UserDetails {
|
||||
|
||||
String getUsername();
|
||||
|
||||
String getPassword();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package adapter.after.security;
|
||||
|
||||
public interface UserDetailsService {
|
||||
|
||||
UserDetails loadUser(String username);
|
||||
|
||||
}
|
||||
35
design-pattern/gof/src/adapter/before/Account.java
Normal file
35
design-pattern/gof/src/adapter/before/Account.java
Normal file
@@ -0,0 +1,35 @@
|
||||
package adapter.before;
|
||||
|
||||
public class Account {
|
||||
|
||||
private String name;
|
||||
|
||||
private String password;
|
||||
|
||||
private String email;
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getPassword() {
|
||||
return password;
|
||||
}
|
||||
|
||||
public void setPassword(String password) {
|
||||
this.password = password;
|
||||
}
|
||||
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
|
||||
public void setEmail(String email) {
|
||||
this.email = email;
|
||||
}
|
||||
|
||||
}
|
||||
21
design-pattern/gof/src/adapter/before/AccountService.java
Normal file
21
design-pattern/gof/src/adapter/before/AccountService.java
Normal file
@@ -0,0 +1,21 @@
|
||||
package adapter.before;
|
||||
|
||||
public class AccountService {
|
||||
|
||||
public Account findAccountByUsername(String username) {
|
||||
Account account = new Account();
|
||||
account.setName(username);
|
||||
account.setPassword(username);
|
||||
account.setEmail(username);
|
||||
return account;
|
||||
}
|
||||
|
||||
public void createNewAccount(Account account) {
|
||||
|
||||
}
|
||||
|
||||
public void updateAccount(Account account) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package adapter.before.security;
|
||||
|
||||
public class LoginHandler {
|
||||
|
||||
UserDetailsService userDetailsService;
|
||||
|
||||
public LoginHandler(UserDetailsService userDetailsService) {
|
||||
this.userDetailsService = userDetailsService;
|
||||
}
|
||||
|
||||
public String login(String username, String password) {
|
||||
UserDetails userDetails = userDetailsService.loadUser(username);
|
||||
if (userDetails.getPassword().equals(password)) {
|
||||
return userDetails.getUsername();
|
||||
} else {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package adapter.before.security;
|
||||
|
||||
public interface UserDetails {
|
||||
|
||||
String getUsername();
|
||||
|
||||
String getPassword();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package adapter.before.security;
|
||||
|
||||
public interface UserDetailsService {
|
||||
|
||||
UserDetails loadUser(String username);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user