[问题] 继承抽象类别的使用观念请益

楼主: chuneee (chuneee)   2022-01-06 21:09:18
大家好,想向各位前辈请教~
有好几只程式分别都要跑三种方法A B C
其中AC是完全一样的内容,只需照不同的类别卡不同参数内容,而B则是各个程式都完全
不同
因此我写了一个抽象类别
内容包括
方法run() 用来呼叫A B C, 方法A(), 方法C()
和抽象方法B()
需要跑这些流程的这些程式就继承这个抽象类别 并实作B()
另外有一个manager会包含main方法
负责new出这些类别并call run()
我的疑问是
1. 这样的安排否妥当?
2. 如果把run() 移到main里,是否有直接的优缺点?
我的想法是,因为run()里的流程是好几只程式都相同的,因此把它放在抽象类别里
但放在main里好像也可以(再个别call子类别的各个方法),不知道关键差异在哪里?
还请各位前辈不吝指教~
作者: jej (晃奶大馬桶)   2022-01-06 21:17:00
看不太懂 隐约可以感觉是样版模式??
作者: ssccg (23)   2022-01-07 11:10:00
这跟抽象类别没有直接关系,主要是run()定义了A()B()C()这这固定的呼叫流程,是一楼提的样板模式,如果这个流程是有意义、可重用,那run()就有意义。反之只有这次用例是指定这个流程那就没必要,放main就好个人比较在意的反而是这个抽象类别,跟各程式是否真的都有is-a关系,ABC会不会用组合的比继承适合

Links booklink

Contact Us: admin [ a t ] ucptt.com