On Wed, 01 Jan 2014 17:43:53 +0000, Afshin wrote: > Modules confuse me as a way to organize code. > > If a module is composed of multiple classes, it seems that the module > semantics in D encourages putting all those classes in one file. > > Can someone explain how to organize a set of classes into a module (or > namespace, or package) so that each class can have their own file?
Read about modules here: http://dlang.org/module.html Modules are not like namespaces: "Modules have a one-to-one correspondence with source files." A module cannot span multiple files. You may organize code into modules however you like; idiomatically for D, code is grouped into modules by functionality (e.g. std.algorithm) and may contain many classes, structures, and free functions. While modules cannot be defined across multiple files, they do nest; you could have a file structure like this: src/ myproject/ core/ class1.d class2.d With the following modules: myproject.core.class1, myproject.core.class2 A package.d module would allow other code to simply import myproject.core, accomplishing a similar effect.