初学面向对象,这个题不会了。设计一个程序表示如下场景,要求能私有的地方都私有,能用接口的地方都用接口:
(1) 一个墙上有插线面板,提供300V电压(用户无法改变),一个用电器,带有一个插头用来接电。在用电器内部程序需要判断是否有300V电压通过,另有一个运行函数,如果电压正常,则函数输出通过成功,否则提示失败。
(2)现在用电器变了,只能使用200V电压,设计一个可以适应任何电压的变压器,变压器上有两个插槽,一边接稳压电源,一边接用电器。要求变压器内部工作函数与输入输出的接口独立开来。
(3)原本墙上的双向插槽变成了三项插槽,设计一个插口转接器。不知道盖房子如何搭框架——类之间如何组织,类之间值如何传递,哪些该封装哪些不该,求高手指点迷津,以及解决此类问题的思路,谢了!

解决方案 »

  1.   

    楼主的这种情况,应该:
    1.将电源功能和用电器主体分离,做成独立的电源适配器;
    2.选用开关电路(而不是变压器)作为电源适配器方案,能轻松的适应几百伏的电压波动;
      这个要解释一下,变压器是在设计阶段写死了绕组比例,所以基本上不能适应输入电压变化
      而开关电路是在运行时刻动态根据输入信息计算出转换矢量,所以适应范围大,而且输出更精确 
    3.选用组合插头(也就是电插头适配器);
    这些设计都已经非常成熟,通过了解,你能看到我们的生活中处处都有MVC的思想
      

  2.   

    还有,楼主提的是面向对象编程的问题,而设置的是一个面向对象设计的场景
    你不能要求每个程序员都要去懂得客户的业务,
    所以,实际项目中会这样分工:
    1.根据客户需求做需求分析,得到用户视图;
    2.根据用户视图做面向对象设计(OOAD),得到开发者视图;
    3.程序员根据开发者视图编程实现在,这当中可能会用到面向对象编程(OOPL)