組合模式或組合振動(dòng)。},il}iriatior} rnodr:s。:c:}mbiri tiaiivi E}rativn、在紅外光譜中通常出現(xiàn)很多的弱吸收,組合模式或組合振動(dòng)系指對應(yīng)于兩個(gè)或多個(gè)基本振動(dòng)頻率之和起源,它的弱吸收于多原子分子振動(dòng)態(tài)相壇作夕}J的振了的非i皆f'}與基頻振動(dòng)及倍頻所引起的吸收相比,這些吸收是比r}弱的
2100433B
修改構(gòu)件后重新組合就可以,重新組合后會彈出對話框可以把以前的組合構(gòu)件替換
GLfore的N300振動(dòng)分析儀的動(dòng)平衡模式怎么設(shè)置到雙面動(dòng)平衡模式
首先,按F鍵,出現(xiàn)新建的功能,選擇新建一個(gè)動(dòng)平衡項(xiàng)目。其次切換到B通道,按設(shè)置鍵,選擇關(guān)閉B通道。最后在切換到A通道,設(shè)置成雙面動(dòng)平衡模式,按ok鍵完成創(chuàng)建 。成功的話會提手出現(xiàn)六個(gè)格子,可以進(jìn)行雙面...
組合構(gòu)件中組合構(gòu)件套什么定額或清單(如飄窗、老虎窗),墻洞套什么定額? 分別套定額,如飄窗分現(xiàn)澆板、梁、窗、裝飾等分別套定額。墻洞不套定額,但有特殊裝飾可以套相應(yīng)定額。 是你在分別建板梁窗...
格式:pdf
大?。?span id="ddgauxi" class="single-tag-height">137KB
頁數(shù): 未知
評分: 4.5
特色小鎮(zhèn)是我國城鎮(zhèn)化進(jìn)程中的創(chuàng)新實(shí)踐,完善配套基礎(chǔ)設(shè)施建設(shè)有利于推進(jìn)其良性發(fā)展。但是特色小鎮(zhèn)有別于一般意義上的小城鎮(zhèn),在基礎(chǔ)設(shè)施建設(shè)方面與一般城鎮(zhèn)存在一定差異。據(jù)此,本文以Markowitz組合投資最優(yōu)化模型為基礎(chǔ),提出適合于特色小鎮(zhèn)的基礎(chǔ)設(shè)施融資的項(xiàng)目組合模式,推進(jìn)特色小鎮(zhèn)的創(chuàng)新實(shí)踐。
格式:pdf
大小:137KB
頁數(shù): 1頁
評分: 4.5
項(xiàng)目組合管理是一種新的管理思想,它是隨著社會和項(xiàng)目管理的不斷發(fā)展而產(chǎn)生的,本文將項(xiàng)目組合管理與項(xiàng)目管理進(jìn)行對比,顯示出項(xiàng)目組合管理具有明顯的優(yōu)勢。根據(jù)項(xiàng)目組合管理的特點(diǎn),本文構(gòu)建了項(xiàng)目組合管理流程模型,并對各階段進(jìn)行了闡述。
組合模式(Composite Pattern)
組合模式使得用戶對單個(gè)對象和組合對象的使用具有一致性。
有時(shí)候又叫做部分-整體模式,它使我們樹型結(jié)構(gòu)的問題中,模糊了簡單元素和復(fù)雜元素的概念,客戶程序可以像處理簡單元素一樣來處理復(fù)雜元素,從而使得客戶程序與復(fù)雜元素的內(nèi)部結(jié)構(gòu)解耦。
組合模式讓你可以優(yōu)化處理遞歸或分級數(shù)據(jù)結(jié)構(gòu)。有許多關(guān)于分級數(shù)據(jù)結(jié)構(gòu)的例子,使得組合模式非常有用武之地。關(guān)于分級數(shù)據(jù)結(jié)構(gòu)的一個(gè)普遍性的例子是你每次使用電腦時(shí)所遇到的:文件系統(tǒng)。文件系統(tǒng)由目錄和文件組成。每個(gè)目錄都可以裝內(nèi)容。目錄的內(nèi)容可以是文件,也可以是目錄。按照這種方式,計(jì)算機(jī)的文件系統(tǒng)就是以遞歸結(jié)構(gòu)來組織的。如果你想要描述這樣的數(shù)據(jù)結(jié)構(gòu),那么你可以使用組合模式Composite。
定義
(GoF《設(shè)計(jì)模式》):將對象組合成樹形結(jié)構(gòu)以表示“部分整體”的層次結(jié)構(gòu)。組合模式使得用戶對單個(gè)對象和組合對象的使用具有一致性。
涉及角色:
1.Component 是組合中的對象聲明接口,在適當(dāng)?shù)那闆r下,實(shí)現(xiàn)所有類共有接口的默認(rèn)行為。聲明一個(gè)接口用于訪問和管理Component子部件。
2.Leaf 在組合中表示葉子結(jié)點(diǎn)對象,葉子結(jié)點(diǎn)沒有子結(jié)點(diǎn)。
3.Composite 定義有枝節(jié)點(diǎn)行為,用來存儲子部件,在Component接口中實(shí)現(xiàn)與子部件有關(guān)操作,如增加(add)和刪除(remove)等。
適用性
以下情況下適用Composite模式:
1.你想表示對象的部分-整體層次結(jié)構(gòu)
2.你希望用戶忽略組合對象與單個(gè)對象的不同,用戶將統(tǒng)一地使用組合結(jié)構(gòu)中的所有對象。
組合模式解耦了客戶程序與復(fù)雜元素內(nèi)部結(jié)構(gòu),從而使客戶程序可以像處理簡單元素一樣來處理復(fù)雜元素。
如果你想要?jiǎng)?chuàng)建層次結(jié)構(gòu),并可以在其中以相同的方式對待所有元素,那么組合模式就是最理想的選擇。本章使用了一個(gè)文件系統(tǒng)的例子來舉例說明了組合模式的用途。在這個(gè)例子中,文件和目錄都執(zhí)行相同的接口,這是組合模式的關(guān)鍵。通過執(zhí)行相同的接口,你就可以用相同的方式對待文件和目錄,從而實(shí)現(xiàn)將文件或者目錄儲存為目錄的子級元素。
基于Java的樣例:
比如現(xiàn)實(shí)中公司內(nèi)各部門的層級關(guān)系
抽象接口類:
package com.zyh.designpattern.composite;
public abstract class Company {
private String name;
public Company(String name) {
super();
this.name = name;
}
public Company(){}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
protected abstract void add(Company company);
protected abstract void romove(Company company);
protected abstract void display(int depth);
}
枝結(jié)點(diǎn)類:
package com.zyh.designpattern.composite;
import java.util.ArrayList;
import java.util.List;
public class ConcreteCompany extends Company {
private List
public ConcreteCompany() {
cList = new ArrayList();
}
public ConcreteCompany(String name) {
super(name);
cList = new ArrayList();
}
@Override
protected void add(Company company) {
// TODO Auto-generated method stub
cList.add(company);
}
@Override
protected void display(int depth) {
// TODO Auto-generated method stub
StringBuilder sb = new StringBuilder("");
for (int i = 0; i < depth; i ) {
sb.append("-");
}
System.out.println(new String(sb) this.getName());
for (Company c : cList) {
c.display(depth 2);
}
}
@Override
protected void romove(Company company) {
// TODO Auto-generated method stub
cList.remove(company);
}
}
兩個(gè)葉結(jié)點(diǎn)類:
------------------------- 1---------------------------.
package com.zyh.designpattern.composite;
public class HRDepartment extends Company {
public HRDepartment(String name) {
super(name);
}
@Override
protected void add(Company company) {
}
@Override
protected void display(int depth) {
// TODO Auto-generated method stub
StringBuilder sb = new StringBuilder("");
for (int i = 0; i < depth; i ) {
sb.append("-");
}
System.out.println(new String(sb) this.getName());
}
@Override
protected void romove(Company company) {
}
}
----------------2-------------------
package com.zyh.designpattern.composite;
public class FinanceDepartment extends Company {
public FinanceDepartment(String name) {
super(name);
}
@Override
protected void add(Company company) {
}
@Override
protected void display(int depth) {
// TODO Auto-generated method stub
StringBuilder sb = new StringBuilder("");
for (int i = 0; i < depth; i ) {
sb.append("-");
}
System.out.println(new String(sb) this.getName());
}
@Override
protected void romove(Company company) {
}
}
客戶端:
package com.zyh.designpattern.composite;
public class Client {
public static void main(String[] args) {
// TODO Auto-generated method stub
Company root = new ConcreteCompany();
root.setName("北京總公司");
root.add(new HRDepartment("總公司人力資源部"));
root.add(new FinanceDepartment("總公司財(cái)務(wù)部"));
Company shandongCom = new ConcreteCompany("山東分公司");
shandongCom.add(new HRDepartment("山東分公司人力資源部"));
shandongCom.add(new FinanceDepartment("山東分公司賬務(wù)部"));
Company zaozhuangCom = new ConcreteCompany("棗莊辦事處");
zaozhuangCom.add(new FinanceDepartment("棗莊辦事處財(cái)務(wù)部"));
zaozhuangCom.add(new HRDepartment("棗莊辦事處人力資源部"));
Company jinanCom = new ConcreteCompany("濟(jì)南辦事處");
jinanCom.add(new FinanceDepartment("濟(jì)南辦事處財(cái)務(wù)部"));
jinanCom.add(new HRDepartment("濟(jì)南辦事處人力資源部"));
shandongCom.add(jinanCom);
shandongCom.add(zaozhuangCom);
Company huadongCom = new ConcreteCompany("上海華東分公司");
huadongCom.add(new HRDepartment("上海華東分公司人力資源部"));
huadongCom.add(new FinanceDepartment("上海華東分公司賬務(wù)部"));
Company hangzhouCom = new ConcreteCompany("杭州辦事處");
hangzhouCom.add(new FinanceDepartment("杭州辦事處財(cái)務(wù)部"));
hangzhouCom.add(new HRDepartment("杭州辦事處人力資源部"));
Company nanjingCom = new ConcreteCompany("南京辦事處");
nanjingCom.add(new FinanceDepartment("南京辦事處財(cái)務(wù)部"));
nanjingCom.add(new HRDepartment("南京辦事處人力資源部"));
huadongCom.add(hangzhouCom);
huadongCom.add(nanjingCom);
root.add(shandongCom);
root.add(huadongCom);
root.display(0);
}
}
基于C 的樣例:
//Menu.h
#include
class Menu
{
public:
virtual ~Menu();
virtual void Add(Menu*);
virtual void Remove(Menu*);
virtual Menu* GetChild(int);
virtual void Display() = 0;
protected:
Menu();
Menu(std::string);
std::string m_strName;
};
//Menu.cpp
#include "stdafx.h"
#include "Menu.h"
Menu::Menu()
{
}
Menu::Menu(std::string strName) : m_strName(strName)
{
}
Menu::~Menu()
{
}
void Menu::Add(Menu* pMenu)
{}
void Menu::Remove(Menu* pMenu)
{}
Menu* Menu::GetChild(int index)
{
return NULL;
}
//SubMenu.h
#include "Menu.h"
class SubMenu : public Menu
{
public:
SubMenu();
SubMenu(std::string);
virtual ~SubMenu();
void Display();
};
//SubMenu.cpp
#include "stdafx.h"
#include "SubMenu.h"
#include
using namespace std;
SubMenu::SubMenu()
{
}
SubMenu::SubMenu(string strName) : Menu(strName)
{
}
SubMenu::~SubMenu()
{
}
void SubMenu::Display()
{
cout << m_strName << endl;
}
//CompositMenu.h
#include "Menu.h"
#include
class CompositMenu : public Menu
{
public:
CompositMenu();
CompositMenu(std::string);
virtual ~CompositMenu();
void Add(Menu*);
void Remove(Menu*);
Menu* GetChild(int);
void Display();
private:
std::vector