iluwatar / iluwatar/java-design-patterns
Data-Context-Interaction (DCI) pattern
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 94.7k
- Forks
- 27.4k
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 10
Description
Description:
The Data-Context-Interaction (DCI) design pattern focuses on separating data storage, business logic, and interaction context within a system. It aims to improve code readability and maintainability by clearly defining these three components:
- Data: Represents the structure and storage of data, typically using simple data objects.
- Context: Defines the environment or situation in which the data operates, establishing roles and interactions for the objects involved.
- Interaction: Contains the business logic and processes that manipulate the data within a specific context.
By implementing the DCI pattern, we aim to enhance the separation of concerns, making the system more modular and easier to understand.
References:
- Project Contribution Guidelines
- DCI Architecture Overview
- The DCI Architecture: A New Vision of Object-Oriented Programming
- Video - Re-thinking foundations of OO programming
- DCI in Ruby
Acceptance Criteria:
- Create a new pattern named
data-context-interactionunder the project. - Implement classes representing the Data, Context, and Interaction components of the DCI pattern.
- Provide example usage and tests demonstrating the functionality and benefits of the DCI pattern in the project.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the project's contribution guidelines and existing design-pattern implementations, then determine where the new data-context-interaction pattern belongs. Define the Data, Context, and Interaction classes under the requested data-context-interaction pattern and add usage examples plus tests demonstrating the stated behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100