2015-07-01 47 views
5

Làm thế nào để bạn tạo một Class mà bất kỳ lớp nào mở rộng Class, các phương thức sẽ được gọi/gọi tự động. Chỉ cần chỉnh sửa câu hỏi của tôi nếu nó có vẻ gây hiểu lầm. Tôi sẽ chỉ giới thiệu một số mẫuCác phương thức gọi từ một lớp siêu khi một lớp con được khởi tạo

Ví dụ 1:

Trong sự hiệp nhất khi bạn mở rộng monobehavior phương pháp của bạn sẽ tự động được gọi. Tôi không biết tôi có đúng không.

public class MyController : MonoBehaviour { 

    void Start() 
    {  
     //Being Called Once 
    } 

    void FixedUpdate() 
    { 
    //Being Called every update 
} 

trên libgdx

Game implements ApplicationListener { 


    @Override 
    public void render() { 
     //Called multiple times 
    } 

} 

Như Những gì tôi đã hiểu và cố gắng thực hiện nó tự của tôi

public abstract Test{ 

     protected Test(){ 
      onStart(); 
     } 


     public abstract void onStart(); 
} 


public class Test2 extends Test{ 

    public Test2(){ 

    } 

    @Override 
    public void onStart(){ 
     //Handle things here 
    } 

} 

Tôi xin lỗi, nhưng tôi vẫn thực sự không biết làm thế nào nó hoạt động hoặc những gì bạn gọi là kỹ thuật này.

Đặc biệt là trong sự thống nhất, khi tạo nhiều bộ điều khiển mở rộng Monobehavior, tất cả các phương pháp bộ điều khiển đã được triển khai sẽ được gọi. Ai đang gọi các lớp và phương pháp này? Một số tài liệu tham khảo hoặc sách về điều này sẽ là một trợ giúp tuyệt vời.

Lưu ý: Vui lòng chỉnh sửa tiêu đề của tôi cho đúng thời hạn để sử dụng. nhờ

Trả lời

2

Tôi xin lỗi, nhưng tôi vẫn thực sự không biết làm thế nào nó hoạt động hay làm những gì bạn gọi kỹ thuật này

Trong Java ví dụ của bạn, phương pháp onStart được cho là một cái móc hoặc phương thức gọi lại.

Wikipedia định nghĩa hooking như sau:

Trong lập trình máy tính, hooking hạn bao gồm một loạt các kỹ thuật sử dụng để thay đổi hoặc tăng cường cho hành vi của một hệ điều hành, các ứng dụng, hoặc các thành phần phần mềm khác bằng cách chặn các cuộc gọi hoặc tin nhắn hoặc sự kiện được truyền giữa các thành phần phần mềm. Mã để xử lý chặn cuộc gọi chức năng này, các sự kiện hoặc tin nhắn được gọi là "móc"

Wikipedia định nghĩa một callback như sau:

Trong lập trình máy tính, hàm hồi quy là một đoạn mã thực thi đó là được thông qua như một đối số cho mã khác, được dự kiến ​​sẽ gọi lại (thực hiện) đối số tại một số thời điểm thuận tiện. Invocation có thể ngay lập tức như trong một callback đồng bộ, hoặc nó có thể xảy ra vào thời điểm sau như trong một callback không đồng bộ

Bất kỳ lớp mà instantiates Test phương pháp từ lớp Test sẽ cho kết quả trong phương pháp onStart của instance được gọi .Ví dụ:

Test test = new Test2();//calls onStart in Test2. 

Điều đó đang được nói, tôi không chắc chắn người gọi là phương pháp trong trường hợp MonoiBehavior nhưng sự hiểu biết chung về cách thức để thực hiện một hoặc một hookcallback trong Java là đúng.

+0

Tôi hiểu. vì vậy đây là hooking. – Keropee

+0

@Keropee Theo nghĩa chung, có. Nó còn được gọi là 'callback'. Trong khi họ có ý nghĩa khác nhau, họ được sử dụng thay thế cho nhau bây giờ-một-ngày. – CKing

+0

Cảm ơn @Chetan Kinger, Đây là một trợ giúp tuyệt vời về nơi tôi nên bắt đầu nghiên cứu của tôi. Tôi sẽ tìm đường đi qua. – Keropee

Các vấn đề liên quan