[ 
https://issues.apache.org/jira/browse/SPARK-26244?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Wenchen Fan updated SPARK-26244:
--------------------------------
    Description: 
It's a bad idea to use case class as public API, as it has a very wide surface. 
For example, the copy method, its fields, the companion object, etc.

I don't think it's expect to expose so many stuff to end users, and usually we 
only want to expose a few methods.

We should use a pure trait as public API, and use case class as an 
implementation, which should be private and hide from end users.

Changing class to interface is not binary compatible(but source compatible), so 
3.0 is a good chance to do it.



  was:
It's a bad idea to use case class as public API, as it has a very wide surface. 
For example, the copy method, its fields, the companion object, etc.

I don't think we expect to expose so many stuff to end users, and usually we 
only want to expose a few methods.


> Do not use case class as public API
> -----------------------------------
>
>                 Key: SPARK-26244
>                 URL: https://issues.apache.org/jira/browse/SPARK-26244
>             Project: Spark
>          Issue Type: Improvement
>          Components: Spark Core, SQL
>    Affects Versions: 3.0.0
>            Reporter: Wenchen Fan
>            Priority: Major
>              Labels: release-notes
>
> It's a bad idea to use case class as public API, as it has a very wide 
> surface. For example, the copy method, its fields, the companion object, etc.
> I don't think it's expect to expose so many stuff to end users, and usually 
> we only want to expose a few methods.
> We should use a pure trait as public API, and use case class as an 
> implementation, which should be private and hide from end users.
> Changing class to interface is not binary compatible(but source compatible), 
> so 3.0 is a good chance to do it.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org

Reply via email to