8000 GitHub - sharuntajus/TaskManager: Built with basic OOPs structure
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

sharuntajus/TaskManager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

TaskManager

Built with basic OOPs structure

Structure TaskManager/ ├── Program.cs ├── Models/ │ ├── TaskItem.cs │ ├── TaskBug.cs │ ├── TaskFeature.cs │ ├── TaskStatus.cs │ └── User.cs ├── Services/ │ └── TaskService.cs

                +-----------------------------+
                   |         User                |
                   +-----------------------------+
                   | - Name: string              |
                   | - Email: string             |
                   +-----------------------------+
                   | + ToString(): string        |
                   +-----------------------------+

                   +-----------------------------+
                   |      TaskItem (abstract)    |  ◄────── Abstract Base
                   +-----------------------------+
                   | - Title: string (private)   |
                   | - Description: string       |
                   | - Reporter: User (private)  |
                   | - Assignee: User (private)  |
                   | - Status: TaskStatus (protected) |
                   | - CreatedAt: DateTime       |
                   +-----------------------------+
                   | + Reassign(user): void      |
                   | + UpdateDescription(): void |
                   | + Complete(): abstract void |
                   | + Display(): virtual void   |
                   +-----------------------------+
                             ▲
              ┌─────────────┴─────────────┐
              │                           │

+-------------------------+ +-----------------------------+ | TaskBug | | TaskFeature | +-------------------------+ +-----------------------------+ | - Severity: string | | - DueDate: DateTime | +-------------------------+ +-----------------------------+ | + Complete(): override | | + Complete(): override | | + Display(): override | | + Display(): override | +-------------------------+ +-----------------------------+

                   +-----------------------------+
                   |       TaskService           |
                   +-----------------------------+
                   | - tasks: List<TaskItem>     |
                   +-----------------------------+
                   | + AddTask(task): void       |
                   | + CompleteTask(title): void |
                   | + ListTasks(): void         |
                   +-----------------------------+

Encapsulation Visualized

  • (minus sign) means private
  • (plus sign) means public (hash) would mean protected

TaskItem.Assignee is private set → Encapsulated

TaskItem.Complete() is abstract → Polymorphic

BugTask and FeatureTask inherit TaskItem → Inheritance

TaskItem is abstract → Abstraction

About

Built with basic OOPs structure

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0