some of the more important, there are more:
- the ed pattern
- takes commands interactively
- may emit outout
- examples: ed(1), gnuplot(1), gdb(1)
- can often read commands on
stdin
- the Roguelike Pattern (TUI pattern)
- text based user interface
- single stroke commands
- many examples: top(1), mutt(1), gdbtui(1), watch(1), vi(1), lynx(1)
- Driver/Engine pair
- driver and engine interact via some IPC method
- engine can run standalone
- examples: ddd+gdb, gnomebaker+cdrecord
- the CLI Server Pattern
- standalone source program
- invoked by a harness program that changes stdin and stdout
- examples: xinetd/inetd (harness) and pop3, tftp, smtp,...