関数を利用してDSLを構築する際には「メソッドチェーン」「関数シーケンス」「ネスト関数」などのパターンを使うが、これらは相互に排他的ではなく、混合して使うことができる。ただし、最適なブレンドのためには状況に応じた意思決定が必要となる。
コマンド-クエリインタフェースとDSLとの違いは、関数同士の結合方法。
computer(); processor(); cores(2); processorType(i386); disk(); diskSize(150); disk(); diskSize(75); diskSpeed(7200); diskInterface(SATA);
computer() .processor() .cores(2) .i386() .disk() .size(150) .disk() .size(75) .speed(7200) .sata() .end();
computer( processor( cores(2), Processor.Type.i386 ), disk( size(150) ), disk( size(75), speed(7200), Disk.Interface.SATA ) );
computer( processor() .cores(2) .type(i386), disk() .size(150), disk() .size(75) .speed(7200) .iface(SATA) ); computer( processor() .cores(4) );