Nos velhos tempos do Delphi, enums eram muito conhecidos e usados, sendo declarados conforme abaixo:
type TSuit = (Hearts, Diamonds, Clubs, Spades); var ASuit : TSuit; ASuit := Hearts;
Uma variável declarada como sendo do tipo TSuit poderia assumir exclusivamente um dos valores determinados em tal conjunto.
Com o advento da linguagem Java, enums não se mostraram presentes, e foram uma das grandes faltas sentidas por aqueles que migraram para essa nova linguagem.
Posteriormente, com o surgimento da linguagem C#, enums foram trazidos de volta à cena, com características bem semelhantes ao antigo enum do Delphi.
A linguagem Java resistiu à introdução dos enums durante algum tempo, mas quando a trouxe, o fez de forma que enums poderiam tanto ser vistos como um simples conjunto de valores:
Implementar o padrão de projeto State em C# é semelhante a implementá-lo em Java, sem fazer o uso de seus enums, claro. No entanto a construçao é tão elaborada que torna seu uso bastante desestimulante, principalmente diante dos simples enums que a linguagem oferece.
Lançando mão de recursos como generics e classes parciais, realizei um implementação um pouco mais elaborada do padrão State em C#, algo que remete bastante ao formato visto nos enums do Java.
Nos próximos posts apresentarei essa implementação e farei algumas comparações entre ela e a implementação java.
Com o advento da linguagem Java, enums não se mostraram presentes, e foram uma das grandes faltas sentidas por aqueles que migraram para essa nova linguagem.
Posteriormente, com o surgimento da linguagem C#, enums foram trazidos de volta à cena, com características bem semelhantes ao antigo enum do Delphi.
enum Suit { Hearts, Diamonds, Clubs, Spades } Suit suit = Suit.Hearts;Junto com a simplicidade herdada do Delphi, vieram suas limitações. Não era possível declarar métodos em um enum, nem para o tipo como um todo e nem para seus valores. Não era possível também sobrescrever seus operadores, um importante recurso apresentado como diferencial pela linguagem C#.
A linguagem Java resistiu à introdução dos enums durante algum tempo, mas quando a trouxe, o fez de forma que enums poderiam tanto ser vistos como um simples conjunto de valores:
enum Suit { HEARTS, DIAMONDS, CLUBS, SPADES } Suit suit = HEARTS;Quanto uma implementação completa do padrão de projeto State:
enum ShippingMethod { FIRST_CLASS { public double shippingCost(double weight, double distance) { ... } }, FED_EX { public double shippingCost(double weight, double distance) { ... } }, UPS { public double shippingCost(double weight, double distance) { ... } }; public abstract double shippingCost(double weight, double distance); };O que possibilita construções bastante elaboradas, sem dúvida algo muito mais rico e útil que os enums do C#.
Implementar o padrão de projeto State em C# é semelhante a implementá-lo em Java, sem fazer o uso de seus enums, claro. No entanto a construçao é tão elaborada que torna seu uso bastante desestimulante, principalmente diante dos simples enums que a linguagem oferece.
Lançando mão de recursos como generics e classes parciais, realizei um implementação um pouco mais elaborada do padrão State em C#, algo que remete bastante ao formato visto nos enums do Java.
Nos próximos posts apresentarei essa implementação e farei algumas comparações entre ela e a implementação java.
Nenhum comentário:
Postar um comentário