这将更像是一个伦理问题,但我很好奇它。策略模式:实例还是Object.class?
所以,有一个策略模式,在那里你有一个策略接口,有几个实现和一堆方法,以策略接口为参数。
假设下面的例子:
Interface: SearchStrategy
Class: StringSearch implements SearchStrategy
Class: IntSearch implements SearchStrategy
etc.
再有就是像
的方法doSearch(String a, String b, SearchStrategy strategy)
您将如何处理策略对象?传递一个实例或者类?
答:doSearch("Hello","World", new StringSearch());
或
B:doSearch("Hello","World", StringSearch.class);
所以,创建一个实例并且将它传递,或越过类对象,并让该方法创建实例。什么是更好,更干净的方式?
performane?当然,在功能强大的服务器上,性能不会有太大的差别,但是那些只有少量资源和低速处理器的嵌入式系统呢?
在Java中思考,我看不到一种StringSearch和IntSearch实现相同接口的方式,并允许'doSearch'将它们交替调用。 –
我的例子可能不是最好的,但它仍然只是一个例子。乍一看,IntSearch完全没有必要;) – Korashen