Czy ktoś zaprojektować API lub kod biblioteki w ten sposób?

głosy
2

Czytałam jakieś rzeczy o jak zaprojektować bibliotekę lub API dobrze, i natknęliśmy się na wielką Dyskusja Joshuy Blocha w Google Tech Talks. Teraz chociaż jestem nigdzie w pobliżu profesjonalnej API programista, myślę programowania kilka klas / funkcji jest podobna, choć znacznie skalowane w dół wersji tej samej rzeczy - separacja jednoznaczne działania, łatwość i przyjemne użytkowanie, zachęcając czysty kod itp

Ja jechałem przez jakiś powszechnie stosowanych open source kodu Java i mam ten pomysł (nic nowego, ale tylko wprowadzenie go klarownie ...)

Weźmy przykład pseudo kod (lub może jakiś dialekt BASIC):

1. new label
2. set name 'hello world'
3. set color 'blue'
4. show 'topmost'
5. on click hide

Teraz zainspirowany kodu Java chciałbym być w stanie zrobić coś takiego:

1. Label l = new Label()
2.          .setName('Hello World')
3.          .setColor('blue')
4.          .show(zindex.top);
5. l.onClick = l.hide() ;

Moje pytanie brzmi:
Czy ktoś API projektowania począwszy od pseudo-kod jak to?

Czy to dobry pomysł na coś małego? Powiedzieć zapisu do 10 zajęć każdy z może 10 metod, każdej metody nie więcej niż niż 5-6 linie kodu wewnątrz niego. To jest oczywiście tylko szorstka zestaw liczb do aby pokazać wielkość klas być zaprojektowane - nigdzie blisko do pełnego API, a nie tylko projekt hobby - pakiet profesjonalny, że coś robi małe, ale robi to dobrze .

Czy ktoś znaleziono żadnych poważne wady tego podejścia?

Myślę, że jeden realne korzyści jest to, że zmusza do zapisanie przypadków użycia pierwszy .

Inną rzeczą jest to, że rzeczowniki i czasowniki pozostać proste , dzięki czemu końcowy produkt unik MultiPhraseAbstractParadigmDesignPatternImplementor zespołem :-D

Utwórz 22/01/2010 o 20:40
źródło użytkownik
W innych językach...                            


4 odpowiedzi

głosy
0

Tak, jest to sposób, że jQuery jest przeznaczony, to zawsze kończy się powrotem się tak, że można metody łańcucha jak ten.

Odpowiedział 22/01/2010 o 20:42
źródło użytkownik

głosy
0

I mają tendencję do rozpoczęcia z pustych klas i metod. Jej naprawdę kwestia odgórnie vs oddolne projektu.

Naprawdę wolę ogromny tablicy szkic chociaż.

Odpowiedział 22/01/2010 o 20:45
źródło użytkownik

głosy
3

Jest to dość powszechny wzorzec projektowy zwany płynny interfejs . Jest to powszechne w językach funkcjonalnych i zyskuje coraz większą popularność w innych miejscach. Po raz pierwszy zobaczyłem go na schemacie.

Jest to bardzo wygodny i czytelny idiom, ale należy pamiętać, że nie będzie często czasy gdzie faktycznie chce zainicjować więcej niż jednej zmiennej w pojedynczym wywołaniu funkcji. Na przykład, gdy istnieje stan wewnętrzny, który musi być ustawiony w zależności od kombinacji danych przy ustalaniu i nadpisanie domyślnych wartości jest ani kosztowne. Tak, jak w przypadku wszystkich „wzorców”, należy rozważnie i przezorność.

Odpowiedział 22/01/2010 o 20:52
źródło użytkownik

głosy
1

Jquery robi dokładnie to. Od http://net.tutsplus.com/tutorials/javascript-ajax/jquery-1-4-released-the-15-new-features-you-must-know/ :

jQuery('<div/>', {  
    id: 'foo',  
    css: {  
        fontWeight: 700,  
        color: 'green'  
    },  
    click: function(){  
        alert('Foo has been clicked!');  
    }  
}); 

lub pre-1,4:

jQuery('<div/>')  
   .attr('id', 'foo')  
   .css({  
       fontWeight: 700,  
       color: 'green'  
   })  
   .click(function(){  
       alert('Foo has been clicked!');  
   });  

Ja również zrobić podobne rzeczy w C # generujących WPF w kodzie:

new StackPanel {
   Children = {
      new TextBlock { Text = "Hi there", Width = 50 },
      new TextBox { Width = 100 },
      new Border { 
          Content = new ListBox()
      }
   }
};
Odpowiedział 22/01/2010 o 21:46
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more