多语言展示
当前在线:273今日阅读:195今日分享:14

如何写好面向对象代码

如何写好面向对象代码
工具/原料

代码

方法/步骤
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方法中的列表而产生错误,我们将得到一个编译时错误。

推荐信息