Remote content provider using an existing third-party content provider.
// 'existing' makes the third party an actor
Actors:
- regular users
- premium users
- third-party content provider
Regular users:
- can browse video content from external content provider [detailed]
- can steam video content from external content provider [detailed]
Premium users:
- can browse video content from external content provider [detailed]
- can steam video content from external content provider [detailed]
- can download video content from external content provider [detailed]
- can browse video content locally [detailed]
- can steam video content locally [detailed]
- better not to split up high-level use-case based on users
- best local + remote content
- premium initiates
- regular initiates
- premium initiates
- third-party participates
- this implies they participate with all derived use-cases
- includes browse local video
- includes stream local video
- includes download + store video
- third-party participates
- includes browse remote video
- extends connection error
- includes stream remote video
- extends connection error
- social media service with API for other remote social media sites
- allows users of remote sites to:
- manage newsfeed [high-level]
- by retrieving other users' posts [detailed]
- modifying newsfeed settings [detailed]
- mange posts [high-level]
- post new status updates [detailed]
- upload photos / videos [detailed]
- manage newsfeed [high-level]
- allows users of remote sites to:
- third-party site user initiates
- includes retrieve newsfeed posts
- extends connection error
- includes modify settings
- extends connection error
- third-party site user initiates
- includes retrieve post new status updates
- extends connection error
- includes upload photos / videos
- extends connection error
- figure out which actor initiates use-case
- select boundary object used to initiate use-case
- named with a noun-phrase
- e.g. candidates: download option, submit form request
- boundary object creates control object
- named with a verb-phrase
- e.g. DownloadMusicControl
- named with a verb-phrase
- control object dictates logic
- entity object may be created then saved
- information may be saved directly
- new boundary object may be created
- reply / notification to initial actor
- to communicate with third-party actor
- all created objects are destroyed
- original boundary object remains
- creational: object creation [mechanisms]
- abstract factory
- structural: simplification of object associations / relationships
- adapter
- bridge
- composite
- façade
- proxy
- behavioural: communication patterns between objects
- command
- observer
- strategy