I'm currently working on a video poker game. I use a card, hand, deck object. Each object has its own properties like card rank, color, value, etc. The deck object has a method for shuffling. It works very well for me and it's easy to deal to a hand, etc.
I also have an evaluator object that you can pass a hand object to. This evaluator object then updates the rank of the hand. Works very well for me.
I also have an evaluator object that you can pass a hand object to. This evaluator object then updates the rank of the hand. Works very well for me.