Ravioli code
From Wikipedia, the free encyclopedia
Ravioli code is a type of program structure, characterized by a number of small and (ideally) loosely-coupled software components. The term is in comparison with spaghetti code, comparing program structure to pasta; with ravioli (small pasta pouches containing cheese, meat, or vegetables) being analogous to objects (which ideally are encapsulated modules consisting of both code and data).
Some consider ravioli code to be a good design methodology, especially when the components used are modular, highly interchangeable, well-encapsulated, and providing well-defined interfaces and behavior. Others consider ravioli code to be an anti-pattern. In poorly-designed object-oriented systems, with deep inheritance hierarchies and multiple layers of virtual functions overriding each other, it can become very difficult to discern (without use of a debugger) exactly what the behavior of the program is, as it is often unclear how virtual function calls are resolved.