On Mon, 2 Dec 2024 14:34:08 GMT, Alexander Zvegintsev <azveg...@openjdk.org> 
wrote:

>> Thanks @azvegint. If the `int`-based dimensions are coupled with 
>> `com.sun.javafx.geom.Rectangle` (and from the code, that's the only place 
>> they are used at), would you object to making `Dimension` an inner class of 
>> `Rectangle`? The `float`-based dimensions are used in other 2D shapes, so 
>> are more general purpose.
>
>> would you object to making Dimension an inner class of Rectangle?
> 
> I am fine with it.

> > Thanks @azvegint. If the `int`-based dimensions are coupled with 
> > `com.sun.javafx.geom.Rectangle` (and from the code, that's the only place 
> > they are used at), would you object to making `Dimension` an inner class of 
> > `Rectangle`? The `float`-based dimensions are used in other 2D shapes, so 
> > are more general purpose.
> 
> In my opinion, inner classes are justified when the implementations are 
> coupled, or when one thing only makes sense in the context of another thing. 
> That doesn't seem to be the case here: `Dimension` is neither used in 
> `Rectangle`, nor are their implementations coupled.
> 
> What this suggests to me is that either `Dimension` should remain its own 
> top-level class, or if it is not useful there, be moved to where it _is_ used 
> instead.

The int-based Dimension is only used *by* `Rectangle` even if in another class. 
I can couple their implementations by adding a `Rectangle#asDimension2D`, and 
this will be the only instantiation of this class. Note that there's already a 
constructor `Dimension2Di(Rectangle rect)` that instantiates only via the 
enclosing class.

-------------

PR Comment: https://git.openjdk.org/jfx/pull/1653#issuecomment-2702651232

Reply via email to