如何写好面向对象代码
1、1一个类只需要承担一个责任,并且只有一个原因来改变类。 这可以通过将日志记录活动移动到一个单独的类来解决,这个类只关注日志异常并将其写入日志文件。
2、2.Account类具有将日志记录活动委托给Logger类的灵活性,并且它只能关注与帐户相关的活动。
3、3.为了适应这个,我添加一个属性到Account类名为“AccountType”。 根据帐户的类型,利率也不同。 我写一个方法来计算帐户类型的利息:
4、4.可以尝试通过添加新帐户类型,是不是可以添加一个从Account类继承的新类来扩展代码? 通过这样做,我们不仅抽象了Account类,而且允许它在其子类中共享共同的行为。
5、5.根据继承殿秩痊肭层次结构,Account对象可以指向其任何一个子对象。 在编译期间没有注意到异常行为。 但是,在运行时,它抛出异常“不允许”。 我们从中推断出什么, 父对象无法无缝替换子对象。创建2个接口 - 一个处理兴趣(IProcessInterest)和另一个处理撤回(IWithdrawable)
6、6.OnlineAccount类将仅实现IProcessInterest,而Account类将实现IProcessInterest和IWithdrawable代码。
7、7.这看起来很干嫌荪鹣莘净。 我们可以创建一个IWithdrawable列表并向其中添加相关的类。 如果通夸臾蓠鬏过添加OnlineAccount到GetAllAccounts方法中的列表而产生错误,我们将得到一个编译时错误。
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。