Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Welcome to Software Development on Codidact!

Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.

Comments on Are there practical reasons for designing a method-only class/object?

Parent

Are there practical reasons for designing a method-only class/object?

+3
−1

Are there practical reasons for designing/implementing a method(s)-only class/object?

Follow-up background notes:

This question is for languages that are not exclusively Object-Oriented, for example, Python and Perl. So languages that can have classes/instances and top-level independent functions.

The event that started me thinking about this is that was reading some code that is a mixture of classes/object and independent functions. I wonder what things to evaluate when thinking about whether/is some of the independent functions should be grouped to classes/object.

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.
Why should this post be closed?

1 comment thread

Sure, i guess... (2 comments)
Post
+4
−0

The question has since been changed to specify certain languages that are not strictly object-oriented. Leaving this answer for anyone coming here looking for info about object-oriented languages.

By method-only, I believe you are trying to specifically rule out classes that define member variables.

There are lots of possibilities where it makes sense for a class to only contain static methods and fields and no member variables. These would be classes of utility methods that make sense to bundle together, but don't operate on member variables.

For one specific example, take a look in your language of choice (I'm looking at Java and C# at the moment) and you may well find a class called Math. That class will have a lot of mathematical methods defined to provide the tangent of an angle, take an absolute value, round a number, or just provide the constant for pi. These things all make sense to provide together and don't need member variables to be useful.

Bundles of extension methods, utilities for different datatypes, and even just one-off static methods that are widely usable, but don't have a good home already defined all make good candidates for using this kind of class.

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.

2 comment threads

This certainly does _not_ apply in python. The natural way to do this in python is to place the func... (2 comments)
Thank you, this is useful answer. The event that started me thinking about this is that I was readin... (1 comment)
This certainly does _not_ apply in python. The natural way to do this in python is to place the func...
Martin Bonner‭ wrote about 3 years ago

This certainly does not apply in python. The natural way to do this in python is to place the functions (as standalone functions) in a module, import the module, and use the functions. Indeed to continue your analogy, there is a module called math which contains a whole bunch of mathematical functions (like math.sin and math.exp). It isn't a completely variable free module because there are also constants like math.pi.

Dana‭ wrote about 3 years ago

At the time this answer was posted, python was not a part of the question. I have put a note on my answer noting that the question has changed since this answer was posted, but I'm leaving the answer for anyone interested in other languages.