Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does "monolithic" mean?

I've seen it in the context of classes. I suspect it means that the class could use being broken down into logical subunits, but I can't find a good definition. Could you give some examples?

Thanks for the help.

Edit: I love the smart replies, but I'm obviously referring to "monolithic" within a software context. I know about monoliths, megaliths, dolmens, and all the stone-related contexts. Gee, I have enough of them in my country...

like image 830
Kristian D'Amato Avatar asked Jul 05 '10 12:07

Kristian D'Amato


2 Answers

Interesting question. I don't think there are any formal definitions of what a monolithic class is, but you've got the idea. A class that contains multiple components that are logically unconnected, or pointlessly coupled, is a monolithic class.

If you've read The Pragmatic Programmer, which I strongly recommend, you can define a monolithic class as an anti-pattern that goes against almost everything from that book.

As for examples, you'll find more in the realm of chip and OS design, where there are formal definitions of monolithic chips/kernels, which are similar to a monolithic class. Here are some examples, although each of them can be argued against being on this list:

  1. JOGL - Java bindings for OpenGL. This could be arguable, and with good reason.
  2. Most academic projects - For obvious reasons.

If you started programming alone, rather than joining a team, then chances are you can open one of your first projects, and there will be a class that is monolithic.

like image 160
SEK Avatar answered Sep 22 '22 12:09

SEK


If you look up the etymology of the word you'll see it comes from the Greek monos (single) and lithos (stone). In the context of software as you mention it, it describes a single-tiered application in which the code for the user interface and the data access are combined into a single program from a single platform.

like image 36
JRL Avatar answered Sep 18 '22 12:09

JRL