3D meshing tools are complex pieces of software involving varied algorithms generally with high computing demands. New requirements and techniques appear continuously and being able to incorporate them into existing tools helps keep them up to date. Modifying complex software is generally a complex task and software engineering strategies such as object-orientation and design patterns promote modifiability and flexibility. We present the design of a 3D meshing framework based on these concepts that yields a software that is both flexible at runtime and easy to modify, while not sacrificing performance severely. We also present an evaluation of the framework design quality and performance.