2012-04-01 27 views
5

Thiết kế OO tốt này có giả sử bạn muốn mọi lớp kế thừa trở thành một Chủ đề vô hạn? Bất kỳ cách nào tốt hơn/thanh lịch hơn để làm điều tương tự?Thiết kế OO có được chấp nhận này là

public abstract class Base implements Runnable { 

protected abstract void doSomething(); 

public void run() { 

    while (true) { 
     Thread.sleep(1000); 
     doSomething(); 
    } 
} 
} 

Trả lời

11

Nếu bạn chỉ muốn doSomething để thực hiện mỗi giây, bạn có thể di chuyển các nhiệm vụ riêng của mình Runnableschedule nó với một ScheduledExecutorService. Bằng cách này bạn có thể giảm số lượng các chủ đề trong chương trình của bạn và tiết kiệm tài nguyên.

+0

scheduleWithFixedDelay, cụ thể – James

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