Ябло (Свежее) / Говнокод #19948 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
import Foundation

class UserAddress {
    
    private var ID = Int32()
    private var stateID = Int32()
    private var eavObjectID = Int32()
    private var firstName = String()
    private var lastName = String()
    private var companyName = String()
    private var address = String()
    private var address2 = String()
    private var city = String()
    private var stateName = String()
    private var postalCode = String()
    private var countryID = String()
    private var phone = String()
    
    func setID(ID: Int32) { self.ID = ID }
    func setStateID(stateID: Int32) { self.stateID = stateID }
    func setEavObject(eavObjectID: Int32) { self.eavObjectID = eavObjectID }
    func setFirstName(firstName: String) { self.firstName = firstName }
    func setLastName(lastName: String) { self.lastName = lastName }
    func setCompanyName(companyName: String) { self.companyName = companyName }
    func setAddress(address: String) { self.address = address }
    func setAddressTwo(address2: String) { self.address2 = address2 }
    func setCity(city: String) { self.city = city }
    func setStateName(stateName: String) { self.stateName = stateName }
    func setPostalCode(postalCode: String) { self.postalCode = postalCode }
    func setCountryID(countryID: String) { self.countryID = countryID }
    func setPhone(phone: String) { self.phone = phone }
    
    
    func getID() -> Int32 { return self.ID }
    func getStateID() -> Int32 { return self.stateID }
    func getEavObject() -> Int32 { return self.eavObjectID }
    func getFirstName() -> String { return self.firstName }
    func getLastName() -> String { return self.lastName }
    func getCompanyName() -> String { return self.companyName }
    func getAddres() -> String { return self.address }
    func getAddressTwo() -> String { return self.address2 }
    func getCity() -> String { return self.city }
    func getStateName() -> String { return self.stateName }
    func getPostalCode() -> String { return self.postalCode }
    func getCountryID() -> String { return self.countryID }
    func getPhone() -> String { return self.phone }

}

Java головного мозга. Писал android девелопер

Запостил: gorsash gorsash, (Updated )

Комментарии (19) RSS

  • причем тут джава? что человек типа сеттеры и геттеры налепил?
    да, это болезнь

    я не знаю свифта, то в ObjC для этого было @property.
    наверняка в свифте еще проще

    Вообще говоря геттеры и сеттеры вручную нигде уже не надо писать
    ни в C# (там есть пропертис) ни в котлине (там они сами создаются)
    и только в жабке нужно добывать уголек

    С другой стороны класс с таким количеством полей которые можно установить и прочитать пахнет говном

    как минимум адрес и имя нужно вынести в отдельные структуры
    Ответить
    • В свифте примерно так же, как в си и котлине.
      var id: Int { set {} get {} }

      причём даже просто var id: Int - это уже проперти
      Ответить
    • Ни AppCode ни Xcode не генерит сеттеры и геттеры.
      В свифте var и есть @property.

      А приведенный выше говнокод сокращается до
      struct UserAddress {
          
          let ID: Int32
          let stateID: Int32
          let eavObjectID: Int32
          let firstName: String
          let lastName: String
          let companyName: String
          let address: String
          let address2: String
          let city: String
          let stateName: String
          let postalCode: String
          let countryID: String
          let phone: String
      }


      Получаем иммутебльную структуру, для мутабельности let заменить на var, для того, чтобы поля не инициализировать в init, типы сделать Optional и так же let заменить на var
      Ответить
      • логично, что не генерирует. наверное они знают свифт (в отличии от автора кода)

        понял про let. Вот откуда это в котлине
        Ответить
    • > причем тут джава? что человек типа сеттеры и геттеры налепил?
      Это только в жабе модно все поля заворачивать в аксессоры - авось в них нужно будет делать какое-то нестандартное поведение. Ведь потом, если понадобится, будет так сложно заменить поле на геттер или сеттер. Естественно, эти авось случаются в 0.1% случаев. Зато индусы в восторге - вместо 10 строк можно налепить 100.
      Ответить
      • да-да, я уже понял и написал выше что в нормальных современных ЯП аксессоры и мутаторы это сахар, который генерит сам язык

        дел не только в поведении
        еще нужно уметь туда брекпоинт ставить
        Ответить
      • > Это только в жабе модно все поля заворачивать в аксессоры - авось в них нужно будет делать какое-то нестандартное поведение.

        Очень давно этого (нестандартное поведение в аксессоре) не видел, к слову.

        Современные разрабы набожно верят что аксессоры должны быть тривиальным возвратом/присвоением.

        Это как бы и правильно, и логично, но только вопрос возникает: на кой хер тогда этот аксессор вообще нужен? Я понимаю в крестах с местными граблями двоичной совместимости - но в какой жабе?...
        Ответить
        • в моем любимом пхп в аксессорах любят делать ленивую загрузку данных.
          Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8