Kotlin – moc POJO w jednym słowie i builder?!

POJO – Plain Old Java Object

W poprzednim poście pisałem o zaletach słowa object czyli o singletonie. Jakie jeszcze wzorce projektowe warto znać? Łatwy do zrozumienia i pokazania z pewnością jest builder. A jakże przydatny! Świetnie te zagadnienia w javie tłumaczy:


Obejrzane? Za subskrybujcie bo Mateusz robi kawał dobrej roboty! Sam zacząłem go oglądać jakiś rok temu jak tylko zainteresowałem się programowaniem.

Wracając do tematu przykładowa implementacja w Javie:

import java.io.Serializable;

public class Course implements Serializable {

protected int courseId;
protected String courseName;
protected String courseType;

public Course() {
courseName = new String();
courseType = new String();
}

public Course(String courseName, String courseType) {
this.courseName = courseName;
this.courseType = courseType;
}

public Course(int courseId, String courseName, String courseType) {
this.courseId = courseId;
this.courseName = courseName;
this.courseType = courseType;
}

public int getCourseId() {
return courseId;
}

public void setCourseId(int courseId) {
this.courseId = courseId;
}

public String getCourseName() {
return courseName;
}

public void setCourseName(String courseName) {
this.courseName = courseName;
}

public String getCourseType() {
return courseType;
}

public void setCourseType(String courseType) {
this.courseType = courseType;
}

@Override
public int hashCode() {
return courseId;
}

@Override
public boolean equals(Object obj) {
if (obj != null || obj instanceof Course) {
Course c = (Course) obj;
if (courseId == c.courseId && courseName.equals(c.courseName)
&& courseType.equals(c.courseType))
return true;
}
return false;
}

@Override
public String toString() {
return “Course[” + courseId + “,” + courseName + “,” + courseType + “]”;
}
}

Kotlin – jak to osiągnąć?

data class Course(courseId:Int = "0", courseName:String = "default name", courseType:String = "default type")

hashCode(), equals(), toString(), gettery i settery i do tego coś na kształt buildera w jednym słowie. Magia.
Piszę, że na kształt buildera bo parametry konstruktora są “nazwalne” i mogą być domyślne -> można się do nich bezpośrednio odwołać.
Jeśli coś jest nie jasne komentujcie. A ja idę dalej badać kotlina i będę powoli przygotowywał serie o Androidzie.

2 odpowiedzi do “Kotlin – moc POJO w jednym słowie i builder?!”

  1. Bawiłem się nieco samym językiem. Na pewno zdecydowanie bardziej produktywniejszy od samej Javy. Fajnie, że jest też interop do niej. Masz szansę się zmainstreamować.
    Acz ze mojej strony nic nie pobije jednak Clojure (choć jemu mainstream póki co prędko nie grozi ;p).

    1. Zdecydowanie produktywniejszy od Javy. Chętnie się zmainstreamuję, ale najbardziej zależy mi żeby ktoś mógł z tego czerpać jakąś wartość.
      Clojure jest ciekawy, próbowałem coś podziałać w nim ale OOP jest znacznie łatwiejsze konceptualnie od FP. Jak tylko osiągnę zadowalający mnie poziom w Kotlinie(i zrealizuje pierwszy cel zawodowy) to następny do nauki będzie Clojure albo Lua(corona SDK 🙂 )

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *