Hi

I am trying to practice golang and have some questions regarding to 
interface design.

Say I want to create a simple app to store the book and its author info. I 
am planning to create interfaces so that I can use different db driver 
(mysql/mongo/redis...) as long as if they implemented DB interface:
https://play.golang.org/p/DOw83_OqBOe

I have a couple questions:

1. there are a lot of similar functions, for example NewBook and NewAuthor. 
The difference is type of argument passed into the function. Is it a good 
idea to combine those 2 functions with a generic New(interface{}) (string, 
error) function and  reflect the actual type inside? 

2. Sometimes we query based on one or more conditions (where clause),  for 
example find books based on author/release data/ price.  Should I create a 
generic function like:

func FindBooks(map[string]interface{}) ([]Book, error)

that passed in a map of condition kv and do the typer assertion of each 
condition key values?


Thanks for any advice


-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to