Studi Kasus: Ubah + dan – dengan konstanta(10)

Ubah + dan – dengan konstanta.

5+2+4-3+10-2=?

Konversi string 1 ke object Satu.

Konversi string 2 ke object Dua.

Konversi string 3 ke object Tiga.

…dst sampai Sembilan.

Object puluhan

Value dalam komposisi puluhan

Object ratusan

Object penjumlahan

Buat Number.CreateNewNumber bisa menerima puluhan

Refactor Convert untuk kondisi panjang ekspresi ==2

Panggil interpret saja untuk convert

Ubah + dan – dengan konstanta

Eksepsi jika tidak ada ekspresi yang bersesuaian

Tambahkan konstanta berikut ini kedalam class ExpressionConverter,

public class ExpressionConverter:IExpressionConverter 
{ 
	private const char PLUS='+'; 
	private const char MINUS='-'; 
	private const string NOL="0";
	...
}

Setelah itu ubah semua magic karakter ke konstanta diatas. Sebagai contoh anda bisa lihat yang berikut ini,

private IExpression interpret(string ekspresi) 
{ 
	ekspresi=ekspresi.Trim(); 
	ekspresi=ekspresi.Trim(PLUS,MINUS); 
	if(!(ekspresi.Contains(PLUS.ToString())||ekspresi.Contains(MINUS.ToString()))) 
		return Number.CreateNewNumber(ekspresi); 
	else{ 
		IExpression exp1=getExp1(ekspresi); 
		IExpression exp2=getExp2(ekspresi); 
		return getOperator(ekspresi,exp1,exp2); 
	} 
}

Perhatikan PLUS dan MINUS bertipe Char, jadi untuk string anda harus mengubahnya ke tipe string dengan method PLUS.ToString().

All Green.

5+2+4-3+10-2=?

Konversi string 1 ke object Satu.

Konversi string 2 ke object Dua.

Konversi string 3 ke object Tiga.

…dst sampai Sembilan.

Object puluhan

Value dalam komposisi puluhan

Object ratusan

Object penjumlahan

Buat Number.CreateNewNumber bisa menerima puluhan

Refactor Convert untuk kondisi panjang ekspresi ==2

Panggil interpret saja untuk convert

Ubah + dan – dengan konstanta

Eksepsi jika tidak ada ekspresi yang bersesuaian

Kita sudah separuh jalan. List kita juga semakin panjang. Ambil kertas, pindahkan yang belum dicoret. Simpan yang lama.

Iklan

There are no comments on this post.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: