Type |
Name |
Notes |
Creational |
Abstract Factory |
Not Used |
Creational |
Builder |
Used to create filename tag |
Creational |
Factory Method |
Maybe used in filename parse methods. |
Creational |
Prototype |
Will create
copy
method for all classes |
Creational |
Singleton |
Used for TagOptions class |
Structural |
Adapter |
Not Used. We can still change the base interface/methods |
Structural |
Bridge |
Not used. Do we need to split tag operations from thier representation?
Maybe split filename tag representation from its parsing operations. |
Structural |
Composite |
Used to parse filename. MP3 tags not quite composite because the
tree is not recursive. |
Structural |
Decorator |
Not Used. We can still change the base interface/methods |
Structural |
Facade |
Are the interfaces all facades? like AbstractMP3FileItem? |
Structural |
Flyweight |
Tried using this with AbstractMP3Object, but can't share instances
because data is stored within each AbstractMp3Object. |
Structural |
Proxy |
No need for remote (over network) proxy. No need for virtual proxy
(to cache additional info, delay creation). No need for protection proxy
(to hide methods based on caller) |
Behavioral |
Chain of Responsibility |
Not used. No messages are used here. |
Behavioral |
Command |
Implement Undo |
Behavioral |
Interpreter |
Used to parse filename |
Behavioral |
Iterator |
Implement on AbstractMP3Tag level. |
Behavioral |
Mediator |
Not Used. No messages in these classes. |
Behavioral |
Memento |
Implement Undo |
Behavioral |
Observer |
Not Used. No messages in these classes. |
Behavioral |
State |
Use to see whether to save (clean, dirty) |
Behavioral |
Strategy |
Not Used. |
Behavioral |
Template Method |
Briefly Searched. Not found. Maybe apply to AbstractMp3Fragment
read/write (body/header) |
Behavioral |
Visitor |
Not used. Breaks object orientated encapsulation. |
System |
Model-View-Controller |
Not Used. No GUI. Model-Controller is Bridge. |
System |
Session |
Not Used. No Network communications. |
System |
Worker Thread |
Not Used. No worker thread at this level. Unless to create new
class to read/write maybe files at once. |
System |
Callback |
Not Used. Would be used with Worker Thread. |
System |
Successive Update |
Not Used. Would be used with Worker Thread. |
System |
Router |
Not Used. Multiple sources (tags), but not multiple destinations
unless creating worker thread |
System |
Transaction |
Used to resize ID3v2 padding. Apply to all save operations? |