Sobes.tech

Java

Ar galite paaiškinti skirtumą tarp polimorfizmo ir abstrakcijos sąvokų objektinio programavimo srityje?

Junior — Middle
212

Skaitykite kodą ir pažymėkite klaidas /** * Klientas, įsigijęs bilietą, gali už papildomą mokestį pasirinkti konkretų vietą. * Pagrindinė vietų kaina nustatoma tarifais (išorinis paslaugų teikėjas). * Kai kuriems klientams su tam tikrais tarifais (PREMIUM, ULTRA) reikia taikyti nuolaidą apmokėjimo metu. * Rezervuojant klientui išrašomas sąskaita apmokėjimui. Mokėjimo valdymas vyksta išoriniuose servisuose. */ @Service public class SeatBookingService { @Autowired private SeatBookingRepository seatBookingRepository; @Autowired private TicketRepository ticketRepository; @Autowired private TariffClient tariffClient; @Autowired private CustomerClient customerClient; @Autowired private PaymentClient paymentClient; /** * Rezervacija. * @param seatCode vietos kodas (pvz., 19A) * @param ticketId bilieto ID */ @Transactional public void bookSeat(String seatCode, UUID ticketId) { var ticket = ticketRepository.findById(ticketId); // rezervuojame var seatBooking = new SeatBooking(seatCode, ticket.get().getFlightId(), ticketId, BookingStatus.BOOKED); seatBookingRepository.save(seatBooking); // ieškome bazinės kainos pasirinktam vietai lėktuve var basePrice = tariffClient.getBasePrice(ticket.get().getPlaneModel(), seatCode); // ieškome kliento duomenų Long userId = (Long) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); var userData = customerClient.getCustomer(userId); System.out.println("Rasta naudotojas " + userData.getFio() + " dokumento numeris " + userData.getDocument()); var price = basePrice; if (userData.getTariff() == "PREMIUM") { // 50% nuolaida price = basePrice * 0.5d; } if (userData.getTariff() == "ULTRA") { // 20% nuolaida price = basePrice * 0.8d; } var invoice = new Invoice(price, ticketId, userId); // išrašome sąskaitą paymentClient.sendInvoice(invoice); System.out.println("Sąskaita išrašyta"); } @Data @Table("seat_booking") public class SeatBooking { @Column private String seatCode; @Column private UUID flightId; @Column private UUID ticketId; @Column private BookingStatus status; } public enum BookingStatus { BOOKED, PAID; }

Senior
ТБанк
212

Ar galite papasakoti apie skirtingus propagation tipus, kuriuos galima nustatyti @Transactional anotacijoje?

Junior — Middle
212

Kokius šaltinius naudojate mokymosi medžiagų ir naujinimų paieškai technologijų srityje?

Junior — Middle
212

Ar įmanoma sukurti ryšius tarp skirtingų kolekcijų MongoDB duomenų bazėje?

Junior — Middle
212

Kaip pradėjote mokytis dirbti su Java ir savo pirmuosius projektus šiame kalboje?

Junior — Middle
212

Kaip formuojami užklausos į duomenų bazę?

Junior
212

Kuo grindžiamas Spring framework?

Junior
212

Kuo skiriasi SQL ir NoSQL duomenų bazės?

Junior
212

Kur naudojama @Bean anotacija?

Middle
212

Kur geriausia taikyti paveldėjimą ir asociaciją programavime?

Middle
212

Kas yra metodo idempotentiškumas?

Junior
212

Kokiu požiūriu į autentifikaciją ir autorizaciją yra įgyvendinta jūsų projekte naudojant Spring Security?

Junior — Middle
Консалтика
212

Kuo skiriasi HTTP užklausų metodai?

Junior
212

Kas yra AutoCloseable sąsaja ir kaip veikia try-with-resources konstrukcija Java?

Middle
212

Kodėl duomenų bazės yra geresnės nei tekstiniai failai?

Junior
212

Kas yra inkapsuliacija programavime?

Intern
212

Koks duomenų įkėlimo mechanizmas taikomas naudojant JOIN FETCH ORM?

Junior — Middle
СБЕРСБЕР
212

Kokie požiūriai ir metodai leidžia išvengti problemų, kai keli srautai dirba vienu metu su vienu bendru ištekliumi?

Junior — Middle
212

Ant ko pagrindo veikia lambda išraiškos?

Middle
212
/726