Skip to content

Temporary Field

sourcemaking

Penjelasan Smell

Terdapat field yang bukan bagian dari data class yang bersangkutan. Field ini hanya dipakai sementara oleh beberapa fungsi. Kemudian field ini tidak pernah lagi digunakan.

SOLID Principle yang perlu dicek untuk smell ini adalah SRP (Single-responsibility principle). Kita perlu mempertimbangkan apakah field yang bersangkutan adalah field yang cocok menempati class tersebut.

Lihat class BojekDriver.java

Disini dimisalkan ada driver yang perlu melakukan pencarian rute terdekat. Salah satu algoritma yang dapat digunakan untuk mencari rute adalah A*. Algorithma A* membutuhkan beberapa hal untuk beroperasi, misalnya adalah variabel f, g, h.

Di dalam class ini, bayangkan ketiga variabel itu akan digunakan di fungsi shortestPath dan juga di fungsi-fungsi private lainnya yang adalah hasil extract fungsi shortestPath (diekstrak agar tidak menimbulkan code smell Long Method).

BojekDriver seharusnya hanya memperdulikan data miliknya. Variabel f, g, dan h hanyalah temporary field untuk keperluan algoritma A*.

Penyelesaian

Untuk contoh kasus ini, kita melakukan Extract Class

Semua fungsi berkaitan dengan A* dan semua variabelnya kita usir ke class baru AStar.java.

Di class BojekDriver, fungsi shortestPath tetap ada, namun didelegasi ke class AStar.

Created by Saugi