亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Design Patterns - Composite Pattern(譯)

android_c / 1364人閱讀

摘要:組合模式按照樹形結(jié)構(gòu)來組織對(duì)象,并且表示部分與整體之間的層次結(jié)構(gòu)。該模式將創(chuàng)建一個(gè)包含一組特定對(duì)象該類的對(duì)象的類。該類提供方法修改這組相同的對(duì)象。

原文鏈接
譯者:smallclover
個(gè)人翻譯,水平有限,如有錯(cuò)誤歡迎指出,謝謝!

設(shè)計(jì)模式-組合模式

當(dāng)我們需要以相似的方式對(duì)待一組對(duì)象和一個(gè)對(duì)象的時(shí)候使用組合模式。組合模式按照樹形結(jié)構(gòu)來組織對(duì)象,并且表示部分與整體之間的層次結(jié)構(gòu)。這種類型的模式屬于結(jié)構(gòu)型模式的一種,它創(chuàng)建一組樹形結(jié)構(gòu)的對(duì)象。
該模式將創(chuàng)建一個(gè)包含一組特定對(duì)象(該類的對(duì)象)的類。該類提供方法修改這組相同的對(duì)象。
我們將通過下面的例子來展示一個(gè)組織的員工層次結(jié)構(gòu)。

實(shí)現(xiàn)

我們有一個(gè)Employee類,該類扮演組合的角色。CompositePatternDemo,我們的demo類將使用Employee類來 打印一個(gè)公司的層次結(jié)構(gòu)。

第一步

創(chuàng)建一個(gè)Employee類,該類持有一個(gè)Employee對(duì)象集合。

Employee.java

import java.util.ArrayList;
import java.util.List;

public class Employee {
   private String name;
   private String dept;
   private int salary;
   private List subordinates;

   // constructor
   public Employee(String name,String dept, int sal) {
      this.name = name;
      this.dept = dept;
      this.salary = sal;
      subordinates = new ArrayList();
   }

   public void add(Employee e) {
      subordinates.add(e);
   }

   public void remove(Employee e) {
      subordinates.remove(e);
   }

   public List getSubordinates(){
     return subordinates;
   }

   public String toString(){
      return ("Employee :[ Name : " + name + ", dept : " + dept + ", salary :" + salary+" ]");
   }   
}
第二步

使用這個(gè)Employee類,創(chuàng)建并且打印employee的層次結(jié)構(gòu)。
CompositePatternDemo.java

public class CompositePatternDemo {
   public static void main(String[] args) {
   
      Employee CEO = new Employee("John","CEO", 30000);

      Employee headSales = new Employee("Robert","Head Sales", 20000);

      Employee headMarketing = new Employee("Michel","Head Marketing", 20000);

      Employee clerk1 = new Employee("Laura","Marketing", 10000);
      Employee clerk2 = new Employee("Bob","Marketing", 10000);

      Employee salesExecutive1 = new Employee("Richard","Sales", 10000);
      Employee salesExecutive2 = new Employee("Rob","Sales", 10000);

      CEO.add(headSales);
      CEO.add(headMarketing);

      headSales.add(salesExecutive1);
      headSales.add(salesExecutive2);

      headMarketing.add(clerk1);
      headMarketing.add(clerk2);

      //print all employees of the organization
      System.out.println(CEO); 
      
      for (Employee headEmployee : CEO.getSubordinates()) {
         System.out.println(headEmployee);
         
         for (Employee employee : headEmployee.getSubordinates()) {
            System.out.println(employee);
         }
      }        
   }
}
第三步

校驗(yàn)輸出。

Employee :[ Name : John, dept : CEO, salary :30000 ]
Employee :[ Name : Robert, dept : Head Sales, salary :20000 ]
Employee :[ Name : Richard, dept : Sales, salary :10000 ]
Employee :[ Name : Rob, dept : Sales, salary :10000 ]
Employee :[ Name : Michel, dept : Head Marketing, salary :20000 ]
Employee :[ Name : Laura, dept : Marketing, salary :10000 ]
Employee :[ Name : Bob, dept : Marketing, salary :10000 ]

雞湯:-D
我必須努力
i have to work hand
私は努力しなければならない

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/65770.html

相關(guān)文章

  • Design Pattern的萬劍歸宗 => Mediator

    摘要:大意就是作者把種不斷的重組歸納抽象直道最后抽象為一種設(shè)計(jì)模式,。而所有的關(guān)注的核心問題就是如何控制信息流但是我個(gè)人認(rèn)為核心是如何解耦。再根據(jù)信息流劃分出對(duì)象在系統(tǒng)中擔(dān)任的種角色,。所以歸為一種核心所有的的職責(zé)都是控制。 Overview 今天看了YouTube上的一個(gè)講Design Pattern的視頻,把這個(gè)視頻的大意給大家分享一下,該視頻的作者是Anthony Ferrara。 ...

    yuanzhanghu 評(píng)論0 收藏0
  • Design Patterns-Command Pattern

    摘要:調(diào)用者對(duì)象會(huì)尋找合適的并且能夠處理該命令的對(duì)象,然后把該命令傳遞給相應(yīng)的對(duì)象處理。緊接著創(chuàng)建一個(gè)類代表請(qǐng)求。創(chuàng)建具體的命令類和實(shí)現(xiàn)接口,它們將會(huì)作為具體的命令被處理。代表調(diào)用者,它能獲得并且發(fā)出命令。 原文連接譯者 smallclover希望對(duì)大家有所幫助。謝謝!(●?●) 設(shè)計(jì)模式-命令模式 命令模式是一種數(shù)據(jù)驅(qū)動(dòng)的設(shè)計(jì)模式,屬于行為型模式這一類。命令模式會(huì)將一個(gè)請(qǐng)求包裝成一個(gè)對(duì)象并...

    ACb0y 評(píng)論0 收藏0
  • Design Patterns - Proxy Pattern

    摘要:在代理模式中,我們將創(chuàng)建一個(gè)對(duì)象,該對(duì)象在在接口中持有原始對(duì)象,以對(duì)外部提供它的功能。實(shí)現(xiàn)我們將創(chuàng)建一個(gè)接口并且創(chuàng)建具體類實(shí)現(xiàn)接口。 原文鏈接譯者:smallclover希望對(duì)你們有所幫助,謝謝閱讀! 設(shè)計(jì)模式-代理模式 在代理模式中,我們使用一個(gè)類來代表另一個(gè)類的功能。這種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)型設(shè)計(jì)模式的一種。在代理模式中,我們將創(chuàng)建一個(gè)對(duì)象,該對(duì)象在在接口中持有原始對(duì)象,以對(duì)外部...

    mtunique 評(píng)論0 收藏0
  • Design Patterns - Facade Pattern

    摘要:實(shí)現(xiàn)我們將創(chuàng)建一個(gè)接口,并且創(chuàng)建具體的類實(shí)現(xiàn)它。接下來我們需要聲明一個(gè)門面類。,我們的類將通過使用類來展示這些結(jié)果。 原文鏈接譯者:smallclover希望對(duì)大家有所幫助!Thanks for your watching 門面模式 門面模式隱藏系統(tǒng)的復(fù)雜性同時(shí)會(huì)提供一個(gè)接口給用戶,使得用戶可以使用該系統(tǒng)。這種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式的一種,它將會(huì)添加一個(gè)接口到現(xiàn)有的系統(tǒng)當(dāng)中,用戶...

    nihao 評(píng)論0 收藏0
  • Design Patterns - Iterator Pattern

    摘要:迭代器模式屬于行為型模式下的一種。實(shí)現(xiàn)我們將創(chuàng)建一個(gè)接口,該接口描述迭代所需要的方法緊接著聲明了一個(gè)接口,該接口返回一個(gè)對(duì)象。我們會(huì)創(chuàng)建具體的類實(shí)現(xiàn)接口和接口,并去使用它們。第三步使用獲得迭代器并且打印。 原文地址譯者 smallclover希望對(duì)你們有所幫助 設(shè)計(jì)模式-迭代器模式 迭代器是Java和.Net程序環(huán)境下經(jīng)常使用的一種設(shè)計(jì)模式。這種設(shè)計(jì)模式通常用來獲取能順序訪問集合對(duì)元素...

    Tony_Zby 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<