如何在我的項目中實現TableDecorator。任何人都可以爲我提供這些步驟或代碼。如何實現TableDecorator?
回答
「裝飾者」不是一個類,而是一種設計模式。在java.io
包中您會發現很多這種模式的實現(例如,查看流)
一個突出的例子,解釋了很多,它是BufferedInputStream
。此類通過添加一些緩衝裝飾任何InputStream
。
簡單的例子:
public interface GreetProvider { public String greet(); }
public class HelloProvider implements GreetProvider {
public String greet() {
return "Hello";
}
}
public class ByeProvider implements GreetProvider {
public String greet() {
return "Good Bye";
}
}
public class SmilyDecorator implements GreetProvider {
private GreetProvider provider;
public SmilyDecorator(GreetProvider provider) {this.provider = provider;}
public String greet() {
return provider.greet() + " :-)";
}
}
// somwhere in some method
GreetProvider hello = new HelloProvider();
GreetProvider bye = new ByeProvider();
GreetProvider helloAndSmiley = new SmileyDecorator(hello);
GreetProvider helloAndTwoSmileys = new SmileyDecorator(helloAndSmiley);
System.out.printf("%s%n%s%n%s%n%s%n",
hello.greet(), bye.greet(),
helloAndSmiley.greet(), helloAndTwoSmileys.greet());
接收答案後更改主題和內容不是很好 - 請注意,我的答案適用於此問題的原始版本... – 2011-04-06 09:29:28
以下類使用Decorator模式:
的
java.io.InputStream, OutputStream, Reader and Writer
所有子類有一個構造採取相同類型的實例。幾乎所有
java.util.List
,Set和Map的實現都有一個構造函數,它帶有一個相同類型的實例。java.util.Collections
,checkedXXX(), synchronizedXXX() and unmodifiableXXX()
方法。javax.servlet.http.HttpServletRequestWrapper and HttpServletResponseWrapper
OK,顯然我們正在談論這個TableDecorator
類。
雖然它是抽象的,它沒有抽象方法,所以我想abstract
修改僅僅是從實例化超類阻止你,使用子類,而不是一個:
(我不認爲你是爲了實現自己的TableDecorator
類)
- 1. 如何實現
- 2. 如何實現SoapHttpClientProtocol
- 3. 如何實現IDEA?
- 4. String.fromCharCode()如何實現?
- 5. 如何實現jquery.sound.js?
- 6. Storyboard.TargetName如何實現?
- 7. \ b如何實現?
- 8. 如何實現.Join()?
- 9. DirectCast如何實現
- 10. PTRACE_SINGLESTEP如何實現?
- 11. 如何實現SSAS
- 12. 如何實現zmsg_recv_nowait?
- 13. 如何實現Sandboxie
- 14. 如何實現塊
- 15. TextUtils如何實現?
- 16. 如何實現SOAP?
- 17. 如何實現Sails.js
- 18. 如何實現DialogFragment
- 19. 如何實現IEnumerable?
- 20. ACL如何實現
- 21. 如何實現GAE
- 22. ExpandableListView如何實現?
- 23. 如何實現validateToolbarItem(_ :)?
- 24. 如何實現DaggerService
- 25. 如何實現Redux?
- 26. 如何實現MVCC?
- 27. 如何實現angular2
- 28. __RTC_CheckEsp如何實現?
- 29. 如何實現getchar()?
- 30. 如何實現UIGestureRecognizerDelegate?
哪個裝飾類? – Bozho 2011-04-06 09:11:54
@Andreas說得好:) – 2011-04-06 09:16:25
請參閱BalusC的優秀[GoF設計模式答案](http://stackoverflow.com/questions/1673841/examples-of-gof-design-patterns/2707195#2707195)以使用裝飾器Java庫中的模式 – 2011-04-06 09:22:14