[JAVA]

Hintergrund

Zweck der Frage

Bestätigung, ob das Design unter Berücksichtigung der Entwicklungseffizienz und Wartungseffizienz entworfen werden kann und ob es möglich ist, das Design und die Codeverbesserung vor dem Code mit den Ingenieuren zu besprechen.

Frage 1

  1. Was sind die Vorteile von abstrahierenden Klassen?
  2. Warum sollte sich der Unterricht eher auf abstrakt als auf konkret stützen?
  3. Bitte erläutern Sie die Spezifikationen des Polymorphismus und seinen Zweck.

Frage 2

  1. Bitte verbessern Sie den folgenden Code durch Refactoring
  2. Bitte erläutern Sie die Verbesserungspunkte und deren Vorteile

Code (Java)

python



public interface InterfaceA {	
	String search(String key);
	String delete(String key);
	String insert(String key);
}

public class ServiceA implements InterfaceA {
	@Override
	public String search(String key) {
		return null;
	}

	@Override
	public String delete(String key) {
		return null;
	}

	@Override
	public String insert(String key) {
		return null;
	}
}

python


public class ServiceController {

	private static ServiceA objA;
	private static ServiceB objB;
	private static ServiceC objC;
	
	public static void set(ServiceA obj) {
		objA = obj;		
	}
	
	public static void set(ServiceB obj) {
		objB = obj;		
	}
	
	public static void set(ServiceC obj) {
		objC = obj;		
	}
	
	public static void search(int serviceType, String key) throws Exception {
		if(1 == serviceType)	 objA.search(key);
		else if(2 == serviceType)objB.search(key);
		else if(3 == serviceType)objC.search(key);
		else throw new Exception("Error");
	}
	
}

python


public class Provider {

	public static void init() {		
		ServiceController.set(new ServiceA());
		ServiceController.set(new ServiceB());
		ServiceController.set(new ServiceC());		
	}

	public static void searchA(String key) throws Exception {
		ServiceController.search(1, key);
	}
}

Zusammenfassung

Dies sind die Fragen für Code-Reviewer und Pädagogen.

Recommended Posts