# bus **Repository Path**: xiayanbing/bus ## Basic Information - **Project Name**: bus - **Description**: 设计模式 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-04-13 - **Last Updated**: 2022-04-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # bus #### 介绍 单元测试的类为BusApp,功能是根据搭车时间和车型还有公里数来查找所需金额 使用的模式主要有工厂模式,BusFactory。屏蔽出租车实例化过程。策略模式,BusStrategy。 #### 扩展功能 1. 可以根据搭车时间和公里数查找所需最低金额的车型,无非就是加一个for循环遍历所有车型,这里就没有增加响应代码 2. 如果每种车型增加一个是否可用的字段,可以使用责任链模式来进行获取随机一个车型给使用者搭车。 3. 如果每种车可以有自己的优惠逻辑,可以单独添加一个优惠接口或者方法来进行重写,在计算价格方法里进行调用,可以更好的进行解耦 4. 修改出租车价格的方法重写了equals方法,具体代码逻辑可以扩展,bus类提供changePrice方法来重写 5. 可以设想政府需要统一修改所有出租车起步价的需求。可以使用观察者模式将所有类型的Bus存储。每个Bus重写修改价格的方法。然后再遍历所有Bus,调用修改价格方法 #### 使用说明 1. 单元测试类为BusApp,如果需要添加新的出租车类型,继承Bus类重写runPrice方法即可。再在工厂里添加该种出租车的实例化方法即可