Open
Description
Follow up to the Interface Segregation Principle violation fix PR #1
I propose to extract ReactionTypeable
interface from Reaction
& ReactionCounter
models. It will be a breaking change.
interface ReactionTypeable
{
public function getReactionType(): ReactionType;
public function isOfReactionType(ReactionType $type): bool;
public function isNotOfReactionType(ReactionType $type): bool;
}
$reactionType = $reaction->getReactionType();
$isTrue = $reaction->isOfReactionType($reactionType);
$isFalse = $reaction->isNotOfReactionType($reactionType);
$reactionType = $counter->getReactionType();
$isTrue = $counter->isOfReactionType($reactionType);
$isFalse = $counter->isNotOfReactionType($reactionType);
Current implementation
- Methods from the
Reaction
model doesn't havereaction
word because initially I've thought that it's redundant:
public function getType(): ReactionType;
public function isOfType(ReactionType $type): bool;
public function isNotOfType(ReactionType $type): bool;
- Methods from the
ReactionCounter
model:
public function getReactionType(): ReactionType;
public function isReactionOfType(ReactionType $type): bool;
public function isNotReactionOfType(ReactionType $type): bool;
New generic method | Current Reaction method | Current ReactionCounter method |
---|---|---|
getReactionType |
getType |
getReactionType (same) |
isOfReactionType |
isOfType |
isReactionOfType |
isNotOfReactionType |
isNotOfType |
isNotReactionOfType |
Metadata
Metadata
Assignees
Labels
Type
Projects
Milestone
Relationships
Development
No branches or pull requests
Activity