What's the best way to farm crops In minecraft?

I farm wheat carrots and potatoes. I would like to farm pumpkins watermelons and other stuff to but not sure what's the best way to.

Make a four wide patch of land with both sides surrounded by water and extend that however far you want.

W = water
x = Stem / seed
M = melon / pumpkin.

IE. WxMMxW

[] = Plowed dirt
= = Water

[][][][][][][][][][]
[][][][][][][][][][]
[][]=[][][][]=[][]
[][][][][][][][][][]
[][][][][][][][][][]
[][][][][][][][][][]
[][][][][][][][][][]
[][]=[][][][]=[][]
[][][][][][][][][][]
[][][][][][][][][][]