Skip to content

Instantly share code, notes, and snippets.

@ulisseshen
Created March 28, 2024 23:39
Show Gist options
  • Save ulisseshen/42cfb0daf1bd500c147f74ce598bf7c2 to your computer and use it in GitHub Desktop.
Save ulisseshen/42cfb0daf1bd500c147f74ce598bf7c2 to your computer and use it in GitHub Desktop.
Document type fazendo uso do factory
enum DocumentStatus {
pending,
approved,
rejected
}
class Document {
String title;
String content;
DocumentStatus status;
Document(this.title, this.content, [this.status = DocumentStatus.pending]);
factory Document.pending(Document document) {
return Document(document.title, document.content, DocumentStatus.pending);
}
factory Document.approved(Document document) {
return Document(document.title, document.content, DocumentStatus.approved);
}
factory Document.rejected(Document document) {
return Document(document.title, document.content, DocumentStatus.rejected);
}
}
// FAZENDO O USO DO FACTORY
void main() {
final document = Document('title', 'content');
print(document.status); // DocumentStatus.pending
final approvedDocument = Document.approved(document);
print(approvedDocument.status); // DocumentStatus.approved
final rejectedDocument = Document.rejected(document);
print(rejectedDocument.status); // DocumentStatus.rejected
final pendingDocument = Document.pending(document);
print(pendingDocument.status); // DocumentStatus.pending
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment