Does an object have to represent an entity?
By an entity I mean something like a Product, Motor, a ParkingLot etc, a physical, or even a clear-cut non-physical conceptual object, -- something that is well defined, with some core data clearly belonging to the object, and some functions/methods that clearly operate on the core data.
For example, I can have an object of a Demon, an entity in itself, an imaginary one perhaps and not physical but an entity nevertheless
Can an object be just a collection of methods, a common set of procedures that tie in with a common goal?
Example: can a class be called MotorOperations or MotorActions, where there is no entity, but methods inside the class do things like
- getMotorDataFromHTMLForm()
- getMotorManufacturers()
- selectMotorFromUserRequirements($requirements)
- canMotorCanHandleOperatingConditions($conditions)
- computePowerConsumptionForMotor($id)
A class is typically defined as data central to the object + operations on data. So for a Motor there may be some motor variables relating to motor specifications, and there can be operations that combine those data to produce something.
In my case it is more like I have a class with operations on data + data that is passed through the class, there is no data centric to "Motor Operations", other than temporary pass-through-the-class data.
Question
Can classes represent entity-less objects? If not, why they are bad/incomplete/non-OOP-centric? Are there ways they need to be changed/improved conceptually to be in line with OOP?