commands przy zapisywaniu plików

0

Znalazłem kody samozwańczego Spring Guru:

https://github.com/springframeworkguru/spring5-recipe-app/tree/display-image-from-db/src/main/java/guru/springframework

i w uproszczeniu on robi coś takiego:

package commands;

@Getter
@Setter
public class MyClassCommand {

    @Column("object")
    private Object object;
}

.

package domain;

@Getter
@Setter
@Entity
public class MyClass {

    @Column("object")
    private Object object;
}

.

package conveters;

public class MyClassCommandToMyClass {

    public convert(MyClassCommand source) {
        MyClass x = new MyClass();
        x.setObject(source.getObject());
        return x;
    }
}

.

package conveters;

public class MyClassToMyClassCommand {

    public convert(MyClass source) {
        MyClassCommand x = new MyClassCommand();
        x.setObject(source.getObject());
        return x;
    }
}

i po to robi by zapisywać tak:

package services;

@Service
public MyClassService {

    private final MyClassRepository myClassRepository;

    public MyClassCommand saveMyClassCommand(MyClassCommand command) {
        MyClass detachedMyClass = MyClassCommandToMyClass.convert(command);

        MyClass savedMyClass = MyClassRepository.save(detachedMyClass);
        
        return MyClassToMyClassCommand.convert(savedMyClass );
    }

Tak się robi czy to są jakieś jaja?

0

nikt się nie wypowie?

1

Tak się to robi.
Oddzielasz warstwę DTO od encji.

0
Black007 napisał(a):

Tak się to robi.
Oddzielasz warstwę DTO od encji.

Czyli to jest DTO pattern? A DTO to nie jest przypadkiem anty patern?

1

Ten guru jest całkim ok do nauki. (nie znam wszystkiego, ale kilka jego lekcji widziałem).

  1. Niestety, kod na kursy rządzi się swoimi prawami, często sie coś robi na wyrost co w kontekście nie ma sensu, mam ten sam ból.
  2. DTO to i pattern i antypattern. Jeśli celem dto jest rozdzielenie dto od encji to znaczy, że anty pattern, bo programista nawet nie wie po co jest to dto, tylko uprawia kult kargo.

1 użytkowników online, w tym zalogowanych: 0, gości: 1