2015-11-21 5 views
0

Я знаю, как разработать простой беглый класс интерфейса, ноКак создать комплексный Fluent Interface в java?

Я хочу знать, как написать что-то вроде этого (некоторые методы доступа к конкретным методам, не все)

MyClass cls = new MyClass() 
       .A() 
       .A1() 
       .A2() 
        .A01()       
        .A02() 
       .B() 
       .B1() 
       .C() 
       .C1() 
        .C01()       
        .C02() 
  • MyClass() может только доступ к A (B),(), C()
  • А() может только доступ к А1 (А2),()
  • A2() может только доступ к A01(), А02()
  • B() может только доступ к B1()
  • C() может только доступа к C1()
  • C1() может только Доступ к C01(), C02()

Как я могу создать класс с плавным интерфейсом и ограничить доступ в java?

+1

Вы звоните '.B()' на результат '.A02()', хотя ваш отступ пытается избежать этого. Как вы планируете справиться с этим? –

ответ

1

Обычно вы создаете базовый класс, и писать много интерфейсов, а затем передать его пользователю в качестве начального интерфейса через некоторую точку входа:

public class EntryPoint { 
    MyClass myClass() { 
     return new Implementation(); 
    } 
} 

// not visible to the user 
class Implementation implements MyClass, A, B, C, A1, A2, ...{ 
    Implementation A() { ... return this; } 
    Implementation A1() { ... return this; } 
    ... 
} 

public interface MyClass { 
    A A(); 
    B B();  
    C C(); 
} 

public interface A { 
    A1 A1(); 
    A2 A2(); 
} 

public interface B { 
    B1 B1(); 
} 

public interface C { 
    C1 C1(); 
} 

... 

 Смежные вопросы

  • Нет связанных вопросов^_^