8.2 Merancang Method yang Baik dalam Pemrograman

Beberapa kriteria yang berguna untuk menganalisis dan meningkatkan antarmuka publik dari kelas:

8.2.1 Providing a Cohesiv Public Interface
Sebuah kelas harus mewakili satu konsep. Semua fitur antarmuka harus terkait erat dengan konsep tunggal yang mewakili kelas.
Jika ada antarmuka publik dari kelas mengacu pada beberapa konsep, maka itu merupakan pertanda baik bahwa mungkin sudah saatnya untuk menggunakan kelas terpisah sebagai gantinya. Ini jelas merupakan solusi yang lebih baik, karena memisahkan tanggung jawab setiap masalah atau isu.

8.2.2 Meminimalkan Dependensi
Banyak method yang dibutuhkan kelas-kelas lain untuk melakukan pekerjaan mereka. Untuk memvisualisasikan hubungan antar kelas, seperti ketergantungan, programmer menggambar diagram kelas. Disimi, kita menggunakan UML ( "Unified Modeling Language") notasi untuk objek dan kelas. UML adalah notasi untuk analisis berorientasi objek dan desain diciptakan oleh Grady Booch, Ivar Jacobson, dan James Rumbaugh, tiga peneliti terkemuka dalam pengembangan softare berorientasi objek. (Lampiran H memiliki ringkasan
notasi UML yang digunakan disini.) Notasi UML membedakan antara objek diagram sebuah diagram kelas. Dalam sebuah diagram objek nama kelas digarisbawahi; dalam diagram kelas nama kelas tidak digarisbawahi. Dalam diagram kelas, ketergantungan ditunjukan oleh garis putus-putus dengan panah tip terbuka -berbentuk yang menunjuk ke kelas yang bergantung.

8.2.3 Memisahkan Accessors dan mutator
Sebuah muthator method mengubah keadaan suatu objek. Sebaliknya, accessor method
meminta objek untuk menghitung hasilnya, tanpa mengubah asalnya.
Sebuah kelas yang hanya memiliki metode accesor, tidak memiliki metode mutator disebut immutable.
String name = "John Q. Public";
String uppercased = name.toUpperCase (); // Nama tidak berubah
Referensi ke obyek dari kelas berubah dapat dengan aman dishare.

8.2.4 Meminimalkan Efek Samping
Efek samping dari method adalah setiap jenis modifikasi data yang diamati luar metode mutator method memiliki efek samping, yaitu modifikasi dari parameter implisit.

public void printBalance () // Tidak direkomendasikan {
System.out.println ( "Jumlah tersebut sekarang $" + saldo);
}

Metode ini bermutasi objek System.out, yang bukan merupakan bagian dari objek rekening bank. Itu adalah efek samping. Untuk menghindari efek samping ini, jaga sebagian besar kelas bebas dari operasi input dan output, dan berkonsentrasi input dan output di satu tempat, seperti main method dari sebuah program.

Sumber: Horstmann, Coy. Fifth Edition. Big Java Early Objects.