Goプロジェクトでインターフェイスとその実装を整理するための規約は何ですか?同じパッケージにそれらを維持するので、それが意味をなすGoプロジェクトでインターフェイスとその実装を整理するための規約は何ですか?
src/
my-repo/
solve/
backtracksolve.go
permutatesolve.go
...
solver.go
... (some repositories and packages omitted for brevity) ...
backtracksolve
とpermutatesolve
は、両方のインターフェイスsolver
を実装:私は行くと小さなプロジェクトを作成するために新しいです
は、私は現在、このフォルダ構造を持っています例えば、java.util
はSet
,Map
,List
のようなインタフェースを含み、HashSet
,HashMap
およびのような実装も含む一般的な規約であるJava/C#からのそのインタフェースのインタフェースおよび他の実装である。。
しかし、両方ともfunc Solve()
と両方を実装しているため、package solve
にはredeclared exception
があります。
各実装(以下)または全く異なるサブディレクトリを作成するのが慣例ですか?
src/
my-repo/
solve/
backtrack/
backtracksolve.go
permutation/
permutatesolve.go
solver.go
"Solve()"メソッドを持つ 'BacktrackSolver'と' PermuteSolver'の2つの型を作成したいと思うかもしれません。それは名前の衝突に役立つだろう。 – md2perpe