Skip to content

Instantly share code, notes, and snippets.

@galihlprakoso
Created January 30, 2019 13:07
Show Gist options
  • Save galihlprakoso/f3f651033800cc16ee162d073c0c9bc5 to your computer and use it in GitHub Desktop.
Save galihlprakoso/f3f651033800cc16ee162d073c0c9bc5 to your computer and use it in GitHub Desktop.
package galihlprakoso.com.solidprinciple;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author galihlarasprakoso
*/
interface PekerjaBangunan {
void kerja();
}
class TukangBatu implements PekerjaBangunan{
@Override
public void kerja() {
buatPondasi();
memasangBatuBata();
mengecor();
}
private void buatPondasi(){
System.out.println("Membuat pondasi...");
}
private void memasangBatuBata(){
System.out.println("Memasang batu bata...");
}
private void mengecor(){
System.out.println("Mengecor...");
}
}
class TukangCat implements PekerjaBangunan{
@Override
public void kerja() {
mengecat();
}
private void mengecat(){
System.out.println("Mengecat...");
}
}
class ProyekBangunan{
List<PekerjaBangunan> pekerja;
public ProyekBangunan(List<PekerjaBangunan> pekerja) {
this.pekerja = pekerja;
}
public void mulaiProyek(){
for (int i = 0; i < pekerja.size(); i++) {
pekerja.get(i).kerja();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment