Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Base classes over interfaces? #103

Open
JeremyCaney opened this issue Jan 10, 2022 · 0 comments
Open

Base classes over interfaces? #103

JeremyCaney opened this issue Jan 10, 2022 · 0 comments
Assignees
Labels
Area: Mapping Relates to one of the `ITopicMappingService` interfaces or implementations. Area: Repositories Relates to the `ITopicRepository` interface or one of its implementations. Priority: 2 Severity 2: Major Status 0: Discussion Needs further evaluation of requirements and prioritization. Type: Improvement Improves the functionality or interface of an existing feature.
Milestone

Comments

@JeremyCaney
Copy link
Member

In Section 4.3 of The Framework Design Guidelines, the authors make a compelling argument for using base classes over interfaces for cases where polymorphism or multi inheritance aren’t needed. This applies effectively to e.g., ITopicRepository (which already has a base class) and possibly the TopicMappingServices.

If so, should we consider changing this for OnTopic 6.x? This would be a major breaking change, but it would also afford us a more stable foundation to build off of in the future.

@JeremyCaney JeremyCaney added Area: Mapping Relates to one of the `ITopicMappingService` interfaces or implementations. Area: Repositories Relates to the `ITopicRepository` interface or one of its implementations. Severity 2: Major Priority: 2 Type: Improvement Improves the functionality or interface of an existing feature. Status 0: Discussion Needs further evaluation of requirements and prioritization. labels Jan 10, 2022
@JeremyCaney JeremyCaney added this to the OnTopic 6.0.0 milestone Jan 10, 2022
@JeremyCaney JeremyCaney self-assigned this Jan 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: Mapping Relates to one of the `ITopicMappingService` interfaces or implementations. Area: Repositories Relates to the `ITopicRepository` interface or one of its implementations. Priority: 2 Severity 2: Major Status 0: Discussion Needs further evaluation of requirements and prioritization. Type: Improvement Improves the functionality or interface of an existing feature.
Projects
None yet
Development

No branches or pull requests

1 participant