Tudja valaki tervezni api vagy könyvtári kód ily módon?

szavazat
2

Olvastam néhány dolgot arról, hogyan tervezzen egy könyvtárat vagy API is, és botlott Joshua Bloch nagy beszédet Google Tech Talks. Most bár én közel sem egy profi API fejlesztő, azt hiszem, a programozás egy csomó osztályok / függvények egy hasonló, bár sokkal kisebb léptékű változatát ugyanannak a dolognak - egyértelmű szétválasztása akciók, könnyű és élvezetes használat ösztönzése tiszta kód stb

Mentem át néhány széles körben használt nyílt forráskódú Java kódot, és van ez a gondolat (nem új, de csak üzembe fel értelmesen ...)

Vegyünk egy példát pszeudo-kód (vagy talán néhány nyelvjárásban BASIC):

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

Most ihlette a Java kód szeretnék, hogy képes legyen megtenni valamit , mint ez:

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

A kérdésem a következő:
Valaki más tervezési API kiindulva pszeudo-kód, mint ez?

Ez egy jó ötlet, hogy valami kicsi? Mondjuk Akár 10 osztályok mindegyike talán 10 módszerek, mindegyik módszer legfeljebb mint 5-6 sor kódot benne. Ez nyilván csak egy durva számok halmaza az, hogy bemutassák a mérete az osztályokat kell kialakítani - sehol közel egy teljes API, és nem csak egy hobbi projekt - szakmai csomag, amely nem valami kicsi, de jól működik .

Van valaki talált semmilyen komoly hátránya, hogy ez a megközelítés?

Azt hiszem, az egyik igazi előnye az, hogy arra kényszerít, hogy írjuk le a használati esetek első .

A másik dolog az, hogy a főneveket és igéket maradni egyszerű , így a végtermék, hogy kikerülje a MultiPhraseAbstractParadigmDesignPatternImplementor szindróma :-D

A kérdést 22/01/2010 20:40
a forrás felhasználó
Más nyelveken...                            


4 válasz

szavazat
0

Igen, ez az az út, hogy a jQuery tervezték, mindig végződik visszatérő magát, így lánc módszerek, mint ez.

Válaszolt 22/01/2010 20:42
a forrás felhasználó

szavazat
0

Azt szokták kezdeni üres osztályok és metódusok. Az igazán az a kérdés, felülről lefelé vs alulról felfelé tervezés.

Tényleg inkább egy hatalmas tábla rajzot mégis.

Válaszolt 22/01/2010 20:45
a forrás felhasználó

szavazat
3

Ez egy meglehetősen gyakori tervezési minta úgynevezett folyékony felület . Ez a közös funkcionális nyelvek és egyre népszerűbb máshol. Először láttam a rendszer.

Ez egy nagyon kényelmes és olvasható idióma, de ne feledje, hogy gyakran idők, amikor valójában nem akarjuk inicializálni egynél több változót egyetlen függvényhívás. Például, ha van belső állapot, amelyet meg kell állítani kombinációjától függően az adatok, vagy beállításakor és felülírás alapértékeket költséges. Tehát, mint minden „mintát”, használja körültekintően és az előrelátás.

Válaszolt 22/01/2010 20:52
a forrás felhasználó

szavazat
1

JQuery pontosan ezt teszi. Honnan 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!');  
    }  
}); 

vagy pre-1.4:

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

Én is csináltam hasonló dolgokat C # generáló WPF kód:

new StackPanel {
   Children = {
      new TextBlock { Text = "Hi there", Width = 50 },
      new TextBox { Width = 100 },
      new Border { 
          Content = new ListBox()
      }
   }
};
Válaszolt 22/01/2010 21:46
a forrás felhasználó

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