我大厅,
在下列情况下,我需要你最好的意见。
我有一个来自网站的分层2级事件类(A和B是基类),这是在框架dll(我们将其命名为“TheLib.dll”)编码为分解和可重用:
A
乙
然后我需要一些外部工具(console / wpf app),每次显示每个事件的内容时,每次都会显示一些不同的(属性的一部分)和日志的特定格式。但我得到的事件的基本类型是:A或B,而不是本机结束类型。
第一种方法是将其编码为“TheLibe.dll”,声明一个具有特定toStringxxx方法的接口,并将其分配给每个事件A son *和B son *
我不喜欢这个,因为代码应该在控制台应用程序中,而不是在框架中,因为它不会在任何其他外部工具中使用。
所以我通过调用GetType()
使用通用转换将字符串格式直接编码到控制台应用程序中让我知道它是好还是坏?为什么?
新芬'
答案 0 :(得分:0)
如果您的控制台应用程序可以了解A和B以及从它们派生的所有子类型,那么使用GetType()
之类的内容并直接在控制台应用程序中执行特定于应用程序的格式化并没有太大问题。只是明白这种方法的可扩展性不是很高。
但是,如果A和B可以不断扩展,并且您的控制台应用程序永远不会知道所有可能的子类型而不重建它,您最好提供toString()
接口,以便每个类都可以它自己的格式或print()
接口,你可以传递某种输出流,这样你就可以根据传入的流的类型格式化输出(例如,ostream
派生类在C ++中,{{1} Java中的派生类,...)