Archived

This topic is now archived and is closed to further replies.

tHiSiSbOb

Windows program==one big class.

Recommended Posts

quote:
Original post by antareus
Those are called God classes and usually aren't well regarded.


Ok. Thank you. Can you tell me why though?
EDIT: Well, I did some research and it says that a god class is a class that has more than one purpose. The program I am writing is a simple map editor and everything done has to do with pretty much the same stuff. Is it still wrong to have a god class?
EDIT2: Also, this god class of mine has several other classes in it. Is it still considered a god class?
[edited by - tHiSiSbOb on January 17, 2004 12:27:20 AM]

[edited by - tHiSiSbOb on January 17, 2004 12:28:26 AM]

Share this post


Link to post
Share on other sites
quote:
EDIT2: Also, this god class of mine has several other classes in it. Is it still considered a god class?

Yes. God classes are named that way because they generally do more than one thing and/or they 'know' too much. In software engineering terms, the God class is coupled to almost all of the other classes, inhibiting maintainability. Usually God classes end up mangling presentation of data with the actual logic that is done on the data. Although that sort of thing is fine for quick, small programs, (think VB) it can become harder to maintain.

Decouple the two using something like signals and slots. I have an entire app that is based only on signals and slots. They are very robust and scalable.

[edited by - antareus on January 18, 2004 1:12:25 AM]

Share this post


Link to post
Share on other sites
quote:
Original post by tHiSiSbOb
Is there anything wrong with making a windows program one big class? What I mean is having a class that has everything in it (includeing the main loop).


There isn''t anything wrong with it if you are using C# or Java. The C++ language tends to disagree with this practice, however.


Colin Jeanne | Invader''s Realm

Share this post


Link to post
Share on other sites
quote:
Original post by the_dannobot
It''s already been done. MFC is an object oriented wrapper around win32.
Many bad things have already been done.

It is generally a bad idea because monolithic software is more difficult to maintain, and one main class would pretty much have to be monolithic.

Share this post


Link to post
Share on other sites
I plan to make my main() look like this:

int wWinMain( HINSTANCE, HINSTANCE, LPSTR, int ) {
new Kernel();
Kernel::GetSingleton.Run();
Kernel::Destroy();
return 0;
}

Share this post


Link to post
Share on other sites
quote:
Original post by Zahlman
quote:
Original post by Invader X
There isn't anything wrong with it if you are using C# or Java.


o__O

"Everything is a class" != "it's ok to use just one class". WTF.



He did not specify the size of the program. Of course it's not very intelligent to always use a single class but for small programs in those languages a single class might be fine.


Colin Jeanne | Invader's Realm

[edited by - Invader X on January 18, 2004 3:43:11 PM]

Share this post


Link to post
Share on other sites
One reason to try to split it up a little is because usually it''s better to make small parts of the working application that you can debug and make sure they''ll work.

If something goes wrong, it''s often easier to find the error this way.

You can also more easily work several people on the same project. If you''re not part of a team, this is no problem for you.

It''s also easier from a design point of view... searching through a large .cpp file is just time consuming, and using one(1) .h-file with several(>1) .cpp-files are just bad design and can confuse a lot IMO. Hope you understand what I mean by this.

But sure, for small->medium size applications I could imagine this being a good solution.

Albert

Share this post


Link to post
Share on other sites