This article is intended to provide a brief introduction to the Strategy Design Pattern, and how can help us to improve our User Interface code.
The scenario – A simple blogging application
You have a blog application and you want to limit user actions based on their roles.
You have the following roles:
- User
- Writer
- Editor
and the following actions:
- New Post – Creates a new blog post
- Edit Post – Edits an existing blog post
- Submit Post – Submits a post for approval
- Reject Post – Rejects a previously submitted blog post
- Publish Post – Publishes a previously submitted blog post
The table below shows the actions per role type
|
Actions |
User |
Writer |
Editor |
|
New post |
x |
||
|
Edit post |
x |
||
|
Submit post |
x |
||
|
Reject post |
x |
||
|
Publish post |
x |
Role type is represented by an enumeration:
public enum RoleType
{
User,
Writer,
Editor
}
What’s the best solution for our problem?
