日期:2014-05-20  浏览次数:20868 次

从一个简单的问题,谈一下设计的思想
问题很简单,我想听一听大家的设计思想:

假设我想写一个彩票开奖信息相关的程序,彩票的彩种很多,比如大家常见的 双色球,福彩3D,七乐彩,七星彩,体彩.......

我的程序,就是要记录每次开奖的信息(有专门的人,通过界面来进行相应的录入)。

现在的问题是,如何组织这样的数据结构合理:

每个彩种都不一样,开奖的数字不一样,甚至开奖的数字个数都不同,将来可能还添加什么足球比分竞猜的彩票...

我原来的思想是:
1.简历一个抽象类 astrob class Lottery 
  {  
  添加一些彩票所共有的东西,如开奖信息,奖金金额等
  }
2. 简历分类 如 class 双色球:Lottery { 双色球集成抽象类...里面再增加它的特色的信息,如奖池等 }

  CLASS 福彩3D:Lottery{ 。。。。}


我现在的初步想法是这样的,但是我现在有一个问题,这样的结构是否合理? 有什么好处?
各个彩票,相同点其实挺少的。。。

如果大家来设计,你们会如何做???

集思广益....

------解决方案--------------------
C# code


    public interface IRun
    {
        void RunLottery();
    }

    public interface IBetting
    {
        void BettingLottery();
    }


    public class 三色球 : IRun
    {
        public void RunLottery()
        {
            //
        }
    }

    public class 足彩 : IRun
    {
        public void RunLottery()
        {
            //
        }
    }


    public abstract class  Lottery 
    {
        protected IRun runBehavior;
        protected IBetting bettingBehavior;

        //开奖
        public void Run()
        {
            this.runBehavior.RunLottery();
        }

        //投注
        public void Betting()
        {
            this.bettingBehavior.BettingLottery();
        }

        //说明信息
        public abstract void Summary();

    }