• Java code
    // Как жить без приватных методов в интерфейсах?
    // Например, пишем такое в DefaultsInterface.java:
    public interface DefaultsInterface {
    
    	default void test1() {
    		DefaultsInterfaceCompanion.INSTANCE.test("S1");
    	}
    
    	default void test2() {
    		DefaultsInterfaceCompanion.INSTANCE.test("S2");
    	}
    }
    
    enum DefaultsInterfaceCompanion {
    	INSTANCE();
    
    	void test(String suffix) {
    		System.out.println("test" + suffix);
    	}
    }
    
    // Да, замена не равноценная, но проблему дублирования кода 
    // в дефолтных методах решает, не загрязняя интерфейс. 
    

Replies (0)