Closed kschrab closed 2 months ago
In my initial suggestion for naming interfaces to declare functionality for the OperatingSystem I used adjectives, as it felt very suitable here and also complies with this suggestion here: https://www.baeldung.com/java-interface-naming-conventions (use adjectives for Interfaces as capabilities)
Googles style does not really care if Interfaces should be adjectives or nouns (allows both).
Therefore we just can/should decide which we use, but it should be consistent within the package (no mix of adjectives/nouns).
This MR (adjectives) | Other Suggestions (Nouns) |
---|---|
AdHocCommunicative |
AdHocCommunicator |
CellCommunicative |
CellCommunicator |
Locatable |
Localizable (adjective)SelfLocator |
Navigable Navigational |
Navigator |
Perceptive |
Perceiver |
Routable RouteCalculable |
Router (meh)? |
In my initial suggestion for naming interfaces to declare functionality for the OperatingSystem I used adjectives, as it felt very suitable here and also complies with this suggestion here: https://www.baeldung.com/java-interface-naming-conventions (use adjectives for Interfaces as capabilities)
Googles style does not really care if Interfaces should be adjectives or nouns (allows both).
Therefore we just can/should decide which we use, but it should be consistent within the package (no mix of adjectives/nouns). This MR (adjectives) Other Suggestions (Nouns)
AdHocCommunicative
AdHocCommunicator
CellCommunicative
CellCommunicator
Locatable
Localizable
(adjective)SelfLocator
Navigable
Navigator
Perceptive
Perceiver
Routable
Router
(meh) ?
I agree with the general naming schema of using adjectives for the description of interfaces. However, in this case it is not really about adding "attributes" to an object but rather enabling the access to additional capabilities.
I.e., the ServerOperatingSystem
itself is not routable but rather is able to route others.
Thinking about this just now, this logic really only applies to the Routable
interface. Maybe also RouteCalculator
would be an alternative.
Further suggestions:
Navigable
-> Navigational
@rprotzmann should definitely comment on this issue
Description
CommunicativeCell
,Perceptive
,Navigable
and so on.AbstractSimulationUnit
still implements and provides functionality a specific unit not necessarily needs, e.g., theAbstractSimulationUnit
provides anAdhocModule
, even if the implementingServerSimulationUnit
does not need such. Still, a server application can not access theAdhocModule
anymore due to the clear definition of theOperatingSystem
interfaces.navigation
package insidesimulation
package alongsideperception
andcommunication
.Issue(s) related to this PR
Affected parts of the online documentation
Changes in the documentation required?
No, Names of OperatingSystems are kept
Definition of Done
Prerequisites
Required
type(scope): description
(in the style of Conventional Commits)enhancement
, orbugfix
)origin/main
has been merged into your Fork.Requested (can be enforced by maintainers)
Special notes to reviewer