Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace SimpleBuilder
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- //ClasseOggettoComplesso obj = new ClasseOggettoComplesso(
- //177,
- //new Recapito("Via Trento", "12b", "Ancona", "60121", "Ancona"),
- //new Anagrafica("Zampucci", "Alarico", "Quintilio", "Sesto"),
- //new DatiFiscali("ZMPALR89R30D150G", "10921349844", "20340598887"),
- //new Curriculum("IS Informatica e Telecomunicazioni", "Informatica", "Full Stack Developer"));
- ClasseOggettoComplesso obj = new OggettoComplessoBuilder()
- .ConQuestoCurriculum(new Curriculum("IS Informatica e Telecomunicazioni", "Informatica", "Full Stack Developer"))
- .ConQuestoAnagrafica(new Anagrafica("Zampucci", "Alarico", "Quintilio", "Sesto"));
- }
- }
- class OggettoComplessoBuilder{
- private int Id { get; set; } = -1;
- private Recapito? Recapito { get; set; } = null;
- private Anagrafica? Anagrafica { get; set; } = null;
- private DatiFiscali? DatiFiscali { get; set; } = null;
- private Curriculum? Curriculum { get; set; } = null;
- public static implicit operator ClasseOggettoComplesso(OggettoComplessoBuilder builder)
- {
- return builder.Build();
- }
- public OggettoComplessoBuilder? ConQuestoId(int id)
- {
- Id = id;
- return this;
- }
- public OggettoComplessoBuilder ConQuestoRecapito( Recapito? recapito)
- {
- Recapito = recapito;
- return this;
- }
- public OggettoComplessoBuilder ConQuestoAnagrafica(Anagrafica anagrafica)
- {
- Anagrafica = anagrafica;
- return this;
- }
- public OggettoComplessoBuilder ConQuestoDatiFiscali(DatiFiscali datiFiscali)
- {
- DatiFiscali = datiFiscali;
- return this;
- }
- public OggettoComplessoBuilder ConQuestoCurriculum(Curriculum curriculum)
- {
- Curriculum = curriculum;
- return this;
- }
- public bool objValido()
- {
- return Id > 0 && Anagrafica != null && Anagrafica.Cognome != "";
- }
- public ClasseOggettoComplesso Build() {
- return objValido() ? new ClasseOggettoComplesso( Id, Recapito, Anagrafica, DatiFiscali, Curriculum)
- : throw new InvalidOperationException("Non posso costruire l'oggetto...");
- }
- }
- class ClasseOggettoComplesso
- {
- private int id;
- private Recapito? recapito;
- private Anagrafica? anagrafica;
- private DatiFiscali? datiFiscali;
- private Curriculum? curriculum;
- public ClasseOggettoComplesso(int id, Recapito? recapito, Anagrafica? anagrafica,
- DatiFiscali? datiFiscali, Curriculum? curriculum)
- {
- this.id = id;
- this.recapito = recapito;
- this.anagrafica = anagrafica;
- this.datiFiscali = datiFiscali;
- this.curriculum = curriculum;
- }
- //private int id;
- //public int getId() { return id; }
- //public void setId(int id) { this.id = id; }
- public int Id { get => id; }
- public Recapito? Recapito { get => recapito; }
- }
- // Dipendenze
- class Recapito
- {
- public string Indirizzo { get; private set; }
- public string Civico { get; private set; }
- public string Comune { get; private set; }
- public string CAP { get; private set; }
- public string Provincia { get; private set; }
- public Recapito(string indirizzo, string civico, string comune, string cap, string provincia)
- {
- Indirizzo = indirizzo;
- Civico = civico;
- Comune = comune;
- CAP = cap;
- Provincia = provincia;
- }
- }
- class Anagrafica
- {
- public string Cognome { get; private set; }
- public string Nome { get; private set; }
- public string SecondoNome { get; private set; }
- public string TerzoNome { get; private set; }
- public Anagrafica(string cognome, string nome, string secondoNome, string terzoNome)
- { Cognome = cognome; Nome = nome; SecondoNome = secondoNome; TerzoNome = terzoNome;}
- }
- class DatiFiscali
- {
- public string CF { get; private set; }
- public string PIVA { get; private set; }
- public string CF5x1000 { get; private set; }
- public DatiFiscali(string cf, string piva, string cf5x1000)
- { CF = cf; PIVA = piva; CF5x1000 = cf5x1000; }
- }
- class Curriculum {
- public string Diploma { get; private set; }
- public string Laurea { get; private set; }
- public string ImpiegoAttuale { get; private set; }
- public Curriculum(string diploma, string laurea, string impiegoAttuale)
- {
- Diploma = diploma;
- Laurea = laurea;
- ImpiegoAttuale = impiegoAttuale;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement