首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

设计方案,请问一上大家的意见

2012-07-30 
设计方案,请教一下大家的意见。需求:设备监控功能,设备状态有多种,并且可能增加、修改等。所以我将各种状态都

设计方案,请教一下大家的意见。
需求:设备监控功能,设备状态有多种,并且可能增加、修改等。
所以我将各种状态都划分出来,设计如下:

StateJudgeFaction——状态判断对象生产工厂
StateJudge——状态判断类
StateA——状态A类
StateB——状态B类
StateC——状态C类
……

StateA、StateB、StateC都继承StateJudge类,StateJudge类中有抽象方法IsNormal()判断状态是否正常

设计代码如下:

C# code
    class StateJudgeFaction     {        public static StateJudge CreateStateJudge()         {            StateJudge sj = null;            return sj;        }    }    class StateJudge     {        protected virtual void IsIsNormal()         {            //判断状态是否正常代码        }    }    class StateA : StateJudge    {        protected override void IsIsNormal()        {            //判断状态是否正常代码        }    }    class StateB : StateJudge    {        protected override void IsIsNormal()        {            //判断状态是否正常代码        }    }    class StateC : StateJudge    {        protected override void IsIsNormal()        {            //判断状态是否正常代码        }    }


因为经常听说,设计与显示分离,上面的只是设计功能上的问题,但是实际上他们都需要一些数据用来操作,最后显示或者返回。

因为StateJudgeFaction类中的CreateStateJudge()函数需要状态和其他计算数据才能运算,现在我想把需要的数据包装成一个类——CarFreeRegion空闲时间段类,

C# code
    class CarFreeRegion    {        private DateTime startDate;//空闲时间段开始时间        public DateTime StartDate        {            get { return startDate; }            set { startDate = value; }        }        private DateTime endDate;//空闲时间段结束时间        public DateTime EndDate        {            get { return endDate; }            set { endDate = value; }        }        private string carPlan;//车牌号码        public string CarPlan        {            get { return carPlan; }            set { carPlan = value; }        }        private string simNo;//sim编号        public string SimNo        {            get { return simNo; }            set { simNo = value; }        }        private string canUseModel;//用车方式        public string CanUseModel        {            get { return canUseModel; }            set { canUseModel = value; }        }        private string useNo;//用车单号        public string UseNo        {            get { return useNo; }            set { useNo = value; }        }        private string carState;//车辆处理后的状态        public string CarState        {            get { return carState; }            set { carState = value; }        }    }



最后代码改成如下:
C# code
    class StateJudgeFaction    {        public static StateJudge CreateStateJudge(CarFreeRegion cfr)        {            StateJudge sj = null;            switch (cfr.CanUseModel) //车辆状态            {                case "StateA":                    sj = new StateA(cfr);                    break;                case "StateB":                    sj = new StateB(cfr);                    break;                case "StateC":                    sj = new StateC(cfr);                    break;                default:                    break;            }            return sj;        }    }    class StateJudge    {        CarFreeRegion cfr = null;        public StateJudge(CarFreeRegion cfr)        {            this.cfr = cfr;        }        protected virtual void IsIsNormal()        {            //判断状态是否正常代码            //通过炒作cfr对象返回或显示数据        }    }    class StateA : StateJudge    {        public StateA(CarFreeRegion cfr)            : base(cfr)        {        }        protected override void IsIsNormal()        {            //判断状态是否正常代码        }    }    class StateB : StateJudge    {        public StateB(CarFreeRegion cfr)            : base(cfr)        {        }        protected override void IsIsNormal()        {            //判断状态是否正常代码        }    }    class StateC : StateJudge    {        public StateC(CarFreeRegion cfr)            : base(cfr)        {        }        protected override void IsIsNormal()        {            //判断状态是否正常代码        }    } 



第一次发设计类的问题,请大家帮帮忙!

如此设计有什么缺陷呢?CarFreeRegion算得上是“实体类”了,只是数据载体罢了,能算设“设备监控功能”中的衣服分吗?

[解决办法]
加酱油。看不懂你的需求,不明白你在说什么
[解决办法]
感觉你的需求和设计对不上
[解决办法]
我不太清楚你要监控什么样的设备,但是按理说这种需求,一般都是通过 "激活模式"进行设计

一般靠得就是remoting/web services
[解决办法]
不太懂
[解决办法]
混乱啊

热点排行