Home > Refactoring > Duplikasi Code

Duplikasi Code

duplikasi code atau kode yang berulang merupakan hal yg paling busuk … wow … jika kita melihat struktur code yg sama … pasti lebih baik jika kita membuatnya pada satu tempat.

Karena jika banyak code yang sama tersebar pada banyak tempat. Pabila terjadi perubahan maka kita harus mencari pada semua tempat code tersebut dan mengubahnya.. tidak boleh ada yg ketinggalan..

tapi kalau codenya terletak pada satu tempat . maka kita tinggal ubah di tempat itu saja .. ga perlu lagi repot2 cari sana sini. dan ketakutan bakalan ada yg ketinggalan atau lupa diubah ….

duplikasi yg paling simple adalah ketika kita melihat expresi yg sama pada

dua method dalam kelas yang sama

public class Doing
{
	public void DoSomethingGood()
	{
		Console.WriteLine("Do A");
		Console.WriteLine("Do B");
		Console.WriteLine("Do C");

		Console.WriteLine("Do really good thing");
	}

	public void DoSomethingBad()
	{
		Console.WriteLine("Do A");
		Console.WriteLine("Do B");
		Console.WriteLine("Do C");
		
		Console.WriteLine("Do really bad thing");
	}

}

yaps.. cara mengatasinya adalah dengan mengelompokkan bagian yang sama dan membuatnya dalam satu method. dan memanggilnya dari kedua method …

public class Doing
{
	public void DoSomethingGood()
	{
		DoCommonThing();
	
		Console.WriteLine("Do really good thing");
	}

	public void DoSomethingBad()
	{
		DoCommonThing();
		
		Console.WriteLine("Do really bad thing");
	}

	private void DoCommonThing()
	{
		Console.WriteLine("Do A");
		Console.WriteLine("Do B");
		Console.WriteLine("Do C");
	}
}

subclass yang memiliki field yang sama

field ini dapat berupa class atau method

public class Employee
{

}

public class Salesman : Employee
{
	private string name;
}

public class Engineer : Employee
{
	private string name;
}

kita ubah menjadi seperti berikut ….

public class Employee
{
	protected string name;
}

public class Salesman : Employee
{
	
}

public class Engineer : Employee
{
	
}

nah tapi proses pengubahan2 tersebut memiliki mekanisme dan hal2 yang perlu dipertimbangkan…. ntar dijelaskan ..
untuk sementara ini begitu saja dulu …

Categories: Refactoring Tags: , , ,
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: