本帖最后由 auweb 于 2010-05-13 18:12:44 编辑

解决方案 »

  1.   

    如果你只是起个名字,没有必要纠缠什么类型。关键是理解名字之后的内涵。这这个内涵只有得到行业专家的认可才算数,绝对不能听程序员的瞎白话。比如我们可以认为打折仅仅是一个金额的概念,那么可能接口就是简单的public interface 打折
    {  
        float 折扣率{get;set;}
    }那么我们就可以说100%折扣就是原价票,低于100%就是打折票。而实际什么是打折,需要考虑哪些东西,要听行家的。但是关键的,你不能纠缠于简单地“原价票、打折票”贴个标签,而首要地是看内涵。如果像你只是想搞两个接口,就有太多的接口,每一个接口都没有什么内涵了。换句话说,就算这里根本不设计接口,直接把折扣率作为车票的属性,不是也已经区分出是原价票还是打折票了吗?不要过度分类。许多东西是从对象身上事后总结出来的(事后重构出新接口),而不一定先分什么类。