2016-07-23 63 views
1

我正在爲我的api重寫一個paint handler。這是不正確的OO做法,我的PaintManager的類結構還是很好?我覺得這是正確的,但我想要一些第二意見。這是OO編程的不正確做法嗎?

忽略背景類中的高度和位置值。 :P

enter image description here

enter image description here

enter image description here

enter image description here

+3

請在習慣發佈實際的代碼,而不是圖像。 [看到這個答案爲什麼我說這個。](http://meta.stackoverflow.com/a/285557/2815219) –

+0

我通常這樣做,我只是爲了另一個目的拍照,然後在這裏使用它們。抱歉! – Matt

+2

這是不正確的做法嗎?是*什麼*一個不正確的做法?清楚地解釋你的問題是什麼。 – Sam

回答

8

這不是一個不正確的做法。此外,無論您在這裏實施的是什麼樣的戰略設計模式

戰略模式說
捕獲接口中的抽象,將派生類中的實現細節。

Strategy Design Pattern

source

0

既然你有一個PaintManager,我假設你將有很多的實施Paintable類。儘量讓你的課程儘可能通用,以避免編寫太多的課程。

例如,如果您創建了一個class Square extends Paintable例如,代碼中的差異將是最小的。

public class Square extends Paintable { 
    // the x position 
    private int x; 

    // the y position 
    private int y; 

    // the width 
    private int w; 

    // the height 
    private int h; 

    // the color 
    private Color color; 

    public Square(int x, int y, int w, int h, Color color) { 
     this.x = x; 
     this.y = y; 
     this.w = w; 
     this.h = h; 
     this.color = color; 
    } 

    // draw method 
    public void draw(Graphics g) { 
     g.setColor(color.getCOLOR()); 
     g.drawRect(x, y, w, h); 
     g.fillRect(x, y, w, h); 
    } 
} 

背景可以是更普通類的對象。

閱讀Difference between an object and a class欲瞭解更多詳情