Skip to content

Commit

Permalink
Refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
Gregory authored and Gregory committed Feb 8, 2024
1 parent 9cda8f1 commit 0f00ffb
Show file tree
Hide file tree
Showing 20 changed files with 79 additions and 56 deletions.
2 changes: 1 addition & 1 deletion oop/src/main/java/fr/gboissinot/al/tps/oop/tp11/Colis.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public int hashCode() {
@Override
public String toString() {
return "Colis{" +
"number='" + id + '\'' +
"id='" + id + '\'' +
", createdDate=" + createdDate +
", status=" + status +
'}';
Expand Down
10 changes: 5 additions & 5 deletions oop/src/main/java/fr/gboissinot/al/tps/oop/tp12/Colis.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,18 @@
//Entity
final class Colis {

private final ColisNumber number;
private final ColisId id;
private final LocalDateTime createdDate;
private ColisStatus status;

private Colis(ColisNumber number, LocalDateTime createdDate, Status status) {
this.number = number;
private Colis(ColisId id, LocalDateTime createdDate, Status status) {
this.id = id;
this.createdDate = createdDate;
this.status = new ColisStatus();
this.status.add(status);
}

public static Colis create(ColisNumber number) {
public static Colis create(ColisId number) {
return new Colis(number, LocalDateTime.now(), Status.IN_PREPARATION);
}

Expand All @@ -38,7 +38,7 @@ public ColisStatus getStatus() {
@Override
public String toString() {
return "Colis{" +
"number=" + number +
"id=" + id +
", createdDate=" + createdDate +
", status=" + status +
'}';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
package fr.gboissinot.al.tps.oop.tp12;

//VO ID
final class ColisNumber {
final class ColisId {

private final String value;

private ColisNumber(String value) {
private ColisId(String value) {
this.value = value;
}

public static ColisNumber of(long value) {
return new ColisNumber("#COLIS" + value);
public static ColisId of(long value) {
return new ColisId("#COLIS" + value);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package fr.gboissinot.al.tps.oop.tp14;

import java.util.HashMap;
import java.util.Map;

final class InMemoryUserPersistence implements UserPersistence {

private final Map<String, User> users = new HashMap<>();

@Override
public User getById(String id) {
return users.get(id);
}

@Override
public void save(User user) {
users.put(user.getId(), user);
}
}

This file was deleted.

26 changes: 14 additions & 12 deletions oop/src/main/java/fr/gboissinot/al/tps/oop/tp14/User.java
Original file line number Diff line number Diff line change
@@ -1,31 +1,33 @@
package fr.gboissinot.al.tps.oop.tp14;

import java.util.Objects;
import java.util.UUID;

//Entity
final class User {

private final String id;
private final String lastname;
private final String firstname;

public User(String id, String lastname, String firstname) {
private User(String id, String lastname, String firstname) {
this.id = id;
this.lastname = lastname;
this.firstname = firstname;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
User user = (User) o;
return Objects.equals(id, user.id) && Objects.equals(lastname, user.lastname) && Objects.equals(firstname, user.firstname);
public static User of(String lastname, String firstname) {
return new User(UUID.randomUUID().toString(), lastname, firstname);
}

@Override
public int hashCode() {
return Objects.hash(id, lastname, firstname);
public String getId() {
return id;
}

public String getLastname() {
return lastname;
}

public String getFirstname() {
return firstname;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package fr.gboissinot.al.tps.oop.tp14;

interface UserPersistence {

User getById(String id);

void save(User user);
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package fr.gboissinot.al.tps.oop.tp14;

import java.util.UUID;

final class UserService {

private final UserPersistence userPersistence;
Expand All @@ -11,7 +9,7 @@ public UserService(UserPersistence userPersistence) {
}

void create(CreateUserRequest createUserRequest) {
User user = new User(UUID.randomUUID().toString(), createUserRequest.lastname, createUserRequest.firstname);
User user = User.of(createUserRequest.lastname, createUserRequest.firstname);
userPersistence.save(user);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ public User(String id, String lastname, String firstname) {
this.firstname = firstname;
}

public String getId() {
return id;
}

public void changeLastName(String newLastName) {
this.lastname = newLastName;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,20 @@
import fr.gboissinot.al.tps.oop.tp15.domain.UserPersistence;
import fr.gboissinot.al.tps.oop.tp15.domain.model.User;

public final class MySQLUserPersistence implements UserPersistence {
import java.util.HashMap;
import java.util.Map;

public final class InMemoryUserPersistence implements UserPersistence {

private final Map<String, User> users = new HashMap<>();

@Override
public User getById(String id) {
//TODO Implement me
throw new UnsupportedOperationException();
return users.get(id);
}

@Override
public void save(User user) {
System.out.println("MYSQL Creation with " + user);
users.put(user.getId(), user);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import java.util.HashMap;
import java.util.Map;

final class InMemoryUserRepository implements UserRepository {
final class InMemoryUserPersistence implements UserPersistence {

private final Map<String, User> users = new HashMap<>();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package fr.gboissinot.al.tps.oop.tp6;

final class OracleUserRepository implements UserRepository {
final class OracleUserPersistence implements UserPersistence {
@Override
public User getById(String id) {
throw new UnsupportedOperationException();
Expand Down
6 changes: 3 additions & 3 deletions oop/src/main/java/fr/gboissinot/al/tps/oop/tp6/README
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
- DIP and DI illustration with the repository pattern

## Notes
- A Service object uses a registry object through an abstraction (DIP pattern)
- The repository interface has several implementations : InMemory, Stub, Oracle
- The chosen implementation is injected (DI) at the wiring step into the Main class
- The UserService object uses a persistence object through an abstraction (DIP pattern)
- The UserPersistence interface has several implementations : InMemory, Stub, Oracle
- The chosen implementation is injected (DI) at the wiring step (into the Main class)
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import java.util.Map;

final class StubUserRepository implements UserRepository {
final class StubUserPersistence implements UserPersistence {

private Map<String, User> myData = Map.of(
"1", User.of("BOISSINOT", "GREGORY"),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package fr.gboissinot.al.tps.oop.tp6;

interface UserRepository {
interface UserPersistence {
User getById(String id);

void save(User user);
Expand Down
12 changes: 6 additions & 6 deletions oop/src/main/java/fr/gboissinot/al/tps/oop/tp6/UserService.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,18 @@
final class UserService {

//Use of DIP pattern
private final UserRepository userRepository;
private final UserPersistence userPersistence;

public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
public UserService(UserPersistence userPersistence) {
this.userPersistence = userPersistence;
}

public User get(User user) {
return userRepository.getById(user.getId());
return userPersistence.getById(user.getId());
}

//Registration Use case
public void register(User user) {
userRepository.save(user);
public void create(User user) {
userPersistence.save(user);
}
}
2 changes: 1 addition & 1 deletion oop/src/test/java/fr/gboissinot/al/tps/oop/tp12/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
public class Main {

public static void main(String[] args) {
Colis colis = Colis.create(ColisNumber.of(123));
Colis colis = Colis.create(ColisId.of(123));
colis.deliver();
System.out.println(colis);
}
Expand Down
2 changes: 1 addition & 1 deletion oop/src/test/java/fr/gboissinot/al/tps/oop/tp14/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ public class Main {

public static void main(String[] args) {
var userRequest = new CreateUserRequest("BOISSINOT", "GREGORY");
var userService = new UserService(new MySQLUserPersistence());
var userService = new UserService(new InMemoryUserPersistence());
userService.create(userRequest);
}
}
4 changes: 2 additions & 2 deletions oop/src/test/java/fr/gboissinot/al/tps/oop/tp15/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
import fr.gboissinot.al.tps.oop.tp15.domain.services.UserService;
import fr.gboissinot.al.tps.oop.tp15.exposition.CreateUserRequest;
import fr.gboissinot.al.tps.oop.tp15.exposition.UserController;
import fr.gboissinot.al.tps.oop.tp15.infrastructure.MySQLUserPersistence;
import fr.gboissinot.al.tps.oop.tp15.infrastructure.InMemoryUserPersistence;

public class Main {

public static void main(String[] args) {
var userRequest = new CreateUserRequest("BOISSINOT", "GREGORY");
var userController = new UserController(new UserService(new MySQLUserPersistence()));
var userController = new UserController(new UserService(new InMemoryUserPersistence()));
userController.createUser(userRequest);
}
}
4 changes: 2 additions & 2 deletions oop/src/test/java/fr/gboissinot/al/tps/oop/tp6/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ public class Main {

//Illustration of DI Pattern (Assemblage)
public static void main(String[] args) {
var userRepository = new InMemoryUserRepository();
var userRepository = new InMemoryUserPersistence();
var userService = new UserService(userRepository); //Uses the DI pattern
var user = User.of("BOISSINOT", "GREGORY");
userService.register(user);
userService.create(user);
System.out.println(userService.get(user));
}
}

0 comments on commit 0f00ffb

Please sign in to comment.