2017-08-04 50 views
-1

內如果我有這個類確實讓從另一個類對象的方法被認爲組成

import java.util.Scanner; 

public class SimpleCalc { 

    private int x; 
    private int y; 
    private Scanner scan; 

    public SimpleCalc() { 
     scan = new Scanner(System.in); 

     System.out.print("Please Enter The First Number: "); 
     this.x = scan.nextInt(); 
     System.out.print("Please Enter The Second Number: "); 
     this.y = scan.nextInt(); 
    } 

} 

此類使用成分的概念,因爲它已經「掃描」從另一個類「掃描儀」的對象。

但如果我宣佈這樣的方法中的「掃描」對象:

public SimpleCalc() { 
    Scanner scan = new Scanner(System.in); 

    System.out.print("Please Enter The First Number: "); 
    this.x = scan.nextInt(); 
    System.out.print("Please Enter The Second Number: "); 
    this.y = scan.nextInt(); 
} 

這是否被認爲組成概念?

另一種方式:組合概念適用於類還是適用於方法?

+0

它適用於類作爲繼承的替代。 – shmosel

+0

這兩種情況都不考慮構成,只是對另一種類型的引用不構成。如果你的課程是'SpecialSanner'並且提供'nextInt'方法,那麼將一些自定義的邏輯委託給'Scanner',那麼你就會說到作文。 'public class Person {String name; ...}不是候選人,它只是一個普通班級。 – luk2302

回答

1

如果你的問題是,在設計模式的背景下,特別是與複合設計模式相關,那麼簡短的答案是NO。

GOF已經描述了:

「撰寫物體插入樹結構來表示部分 - 整體 hierarchies.Composite允許客戶端對單個對象和對象的 組合物均勻地」。

所以這不適用於方法。

+0

你能否證實這一點:如果我從另一個類中創建一個不考慮構圖的方法內的對象 –

+0

通過創建一個對象,你正在實例化方法中的一個類。這只是您的方法中對該對象的本地引用。這不是課堂上的水平。在我看來,這不是一個複合設計。 – Armaiti

相關問題