SHARE
TWEET

Untitled

a guest Jun 20th, 2019 51 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class InstrumentedHashSet extends HashSet{
  2.     private int addCount = 0;
  3.     //Пропуск конструктора. Перейдем к сути
  4.     //…
  5.     public boolean add(Object o){
  6.         addCount++;
  7.         super.add(o);
  8.     }
  9.     public boolean addAll(Collection c){
  10.         addCount+=c.size();
  11.         super.addAll(c);
  12.     }  
  13.     //… Другие методы
  14. }
  15.      
  16. class Subclass extends ParentNew{
  17.     Date date;
  18.     Subclass(){
  19.         date = new Date();
  20.         parentMethodThatOverrides();//вызывает переписанный метод, все в порядке
  21.     }
  22.     //…
  23.     @Override
  24.     public void parentMethodThatOverrides(){
  25.         System.out.println("date in incorrect method: "+date);
  26.     }
  27. }
  28. class ParentNew{
  29.     ParentNew(){
  30.         parentMethodThatOverrides();//вызывает не свой, а переписанный метод!
  31.     }
  32. public void parentMethodThatOverrides(){}
  33. }
  34.      
  35. class InstrumentedHashSet{
  36.     private int addCount = 0;
  37.     HashSet hashSet;
  38.     //…
  39.     InstrumentedHashSet(Collection c){
  40.         hashSet = new HashSet(c);
  41.     }
  42.     //...
  43.     public boolean add(Object o){
  44.         addCount++;
  45.         return hashSet.add(o);
  46.     }
  47.     public boolean addAll(Collection c){
  48.         addCount+=c.size();
  49.         return hashSet.addAll(c);
  50.     }  
  51.     //… Другие методы
  52. }
  53.      
  54. class Wrapper implements SomethingWithCallback {
  55.     private final WrappedObject wrappedObject;
  56.     //...
  57.     @Override
  58.     public void doSomething() {
  59.         wrappedObject.doSomething();
  60.     }
  61.     @Override
  62.     public void call() {
  63.         System.out.println("Wrapper callback!");
  64.     }
  65.     //...
  66. }
  67. class WrappedObject implements SomethingWithCallback {
  68.     private final SomeService service;
  69.     //...
  70.     @Override
  71.     public void doSomething() {
  72.         service.callSelf(this); // Комментарий
  73.     }
  74.     @Override
  75.     public void call() {
  76.         System.out.println("WrappedObject callback!");
  77.     }
  78.     //...
  79. }
  80. class SomeService{
  81.     void callSelf(WrappedObject Object){
  82.         Object.call();
  83.     }
  84. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top