Skip to content

Instantly share code, notes, and snippets.

@ozw-sei
Last active August 29, 2015 14:23
Show Gist options
  • Select an option

  • Save ozw-sei/c1f1f44ec46b7763049a to your computer and use it in GitHub Desktop.

Select an option

Save ozw-sei/c1f1f44ec46b7763049a to your computer and use it in GitHub Desktop.
interface Document{}
interface Read extend Document{}
interface Write extend Document{}
class HTML implements Read;
class PDF implements Read;
class MarkDown implements Write;
class Wiki implements Write;
interface Parser<T <: Write>{
public T parse(Resource resource);
}
interface Renderer<T <: Read>{
public T render();
}
class ParserFactory<T <: Write>{
public T getParser(Type resource);
}
// ---------------------------------------------------------------------------
class MarkdownParser<T <: Write> implements Parser<T>{
public T parse(Resource resource){
// return parse
return ...;
}
}
class WikiParser<T <: Write> implements Parser<T>{
public T parse(Resource resource){
// return parse
return ...;
}
}
class WebRenderer implements Render<HTML>{
public HTML render(){
ParserFactoty<HTML> fact = ...create;
Resource resource = Global.getInstance().getResource();
return fact.parse(resource);
}
}
class PDFRenderer implements Render<PDF>{
public PDF render(){
ParserFactoty<PDF> fact = ...create;
Resource resource = Global.getInstance().getResource();
return fact.parse(resource);
}
}
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment