UML图和C++;设计模式 刚刚开始学习C++设计模式,从初学者开始。我终于开始阅读网站了。但在遇到图像后,我无法将图像映射到实际的类(及其接口)构造中
矩形、箭头、虚线是什么?我们如何将其转换为实际的代码实现?这是一种描述软件设计的UML语言。这和设计模式独立于任何编程语言这是一种描述软件设计的UML语言。这种模式和设计模式独立于任何编程语言图表是用UML-绘制的。您应该真正熟悉它们,因为为了研究设计模式,您并不需要实际的代码。是的,好吧,最终你必须用你想要的语言实现设计模式,但是对模式的理解必须比代码更高。图表是用UML绘制的。您应该真正熟悉它们,因为为了研究设计模式,您并不需要实际的代码。是的,好吧,最终你必须用你想要的语言实现设计模式,但对模式的理解必须比代码更高。回答:“我们如何将其转换为实际的代码实现?” 这个带有注释和CamelCase的UML看起来像Java,UML图和C++;设计模式 刚刚开始学习C++设计模式,从初学者开始。我终于开始阅读网站了。但在遇到图像后,我无法将图像映射到实际的类(及其接口)构造中,c++,design-patterns,uml,C++,Design Patterns,Uml,矩形、箭头、虚线是什么?我们如何将其转换为实际的代码实现?这是一种描述软件设计的UML语言。这和设计模式独立于任何编程语言这是一种描述软件设计的UML语言。这种模式和设计模式独立于任何编程语言图表是用UML-绘制的。您应该真正熟悉它们,因为为了研究设计模式,您并不需要实际的代码。是的,好吧,最终你必须用你想要的语言实现设计模式,但是对模式的理解必须比代码更高。图表是用UML绘制的。您应该真正熟悉它们,因为为了研究设计模式,您并不需要实际的代码。是的,好吧,最终你必须用你想要的语言实现设计模式,但
但这里有一些C++图形来自您的图表:
- 箭头通常表示指针或共享\u ptr-s
- 白头箭头表示公共继承 <> > >代码> <代码> <强>是C++中的抽象类,java接口,
- 带有虚线箭头的白色内容是注释。在本例中,它们为您提供了实现细节,您也可以按字面意思键入它们
class Abstract_platform {
public:
virtual ~Abstract_platform()=0; // this UML does not specify any functions but we make this class abstract.
};
class Platform_one : public Abstract_platform {
};
class Platform_two : public Abstract_platform {
public:
/// you should implement this make function with shared_ptr, OR NO POINTERS AT ALL but I go according to the notes
Product_one_platform_two* make_product_one();
Product_two_platform_two* make_product_two();
// I provide you with a better_make. It is better than the former make functions
// due to RVO (Return value optimization see wikipedia)
// so this is again a hint that this UML was originally for Java.
Product_one_platform_two better_make_product_one();
};
class Class1 {
private:
Abstract_platform* platform; // OR shared_ptr<Abstract_platform>, OR Abstract_platform&
Abstract_product_two* product_two;
};
/// **Implementation file**
Product_one_platform_two* Platform_two::make_product_one()
{
return new Product_one_platform_two();
}
Product_two_platform_two* Platform_two::make_product_two()
{
return new Product_two_platform_two();
}
Product_one_platform_two Platform_two::better_make_product_one()
{
return Product_one_platform_two();
}
类抽象\u平台{
公众:
virtual~Abstract_platform()=0;//此UML未指定任何函数,但我们将此类抽象化。
};
类平台一:公共抽象平台{
};
类平台二:公共抽象平台{
公众:
///您应该使用shared_ptr实现这个make函数,或者完全不使用指针,但我按照注释执行
产品一个平台二个*制造产品一个();
Product_two_platform_two*make_Product_two();
//我为你提供了一个更好的品牌。它比以前的品牌功能更好
//由于RVO(返回值优化见维基百科)
//这再次暗示了这个UML最初是用于Java的。
产品一个平台两个更好产品一个();
};
一班{
私人:
Abstract_platform*platform;//或共享_ptr,或Abstract_platform&
抽象产品二*产品二;
};
///**执行文件**
产品(一)平台(二)平台(二):制造(一)产品(一)
{
退回新产品_one_platform_two();
}
Product_two_platform_two*platform_two::make_Product_two()
{
退回新产品_two_平台_two();
}
产品一个平台二个平台二:更好的产品一
{
退货产品_一_平台_二();
}
还要注意的是,人们不喜欢Abstract_platform
而是喜欢ipplatform
匈牙利符号,其中“I”代表“接口”。回答:“我们如何将其转换为实际的代码实现?”
这个带有注释和CamelCase的UML看起来像Java,但这里有一些C++图形来自您的图表:
- 箭头通常表示指针或共享\u ptr-s
- 白头箭头表示公共继承 <> > >代码> <代码> <强>是C++中的抽象类,java接口,
- 带有虚线箭头的白色内容是注释。在本例中,它们为您提供了实现细节,您也可以按字面意思键入它们
class Abstract_platform {
public:
virtual ~Abstract_platform()=0; // this UML does not specify any functions but we make this class abstract.
};
class Platform_one : public Abstract_platform {
};
class Platform_two : public Abstract_platform {
public:
/// you should implement this make function with shared_ptr, OR NO POINTERS AT ALL but I go according to the notes
Product_one_platform_two* make_product_one();
Product_two_platform_two* make_product_two();
// I provide you with a better_make. It is better than the former make functions
// due to RVO (Return value optimization see wikipedia)
// so this is again a hint that this UML was originally for Java.
Product_one_platform_two better_make_product_one();
};
class Class1 {
private:
Abstract_platform* platform; // OR shared_ptr<Abstract_platform>, OR Abstract_platform&
Abstract_product_two* product_two;
};
/// **Implementation file**
Product_one_platform_two* Platform_two::make_product_one()
{
return new Product_one_platform_two();
}
Product_two_platform_two* Platform_two::make_product_two()
{
return new Product_two_platform_two();
}
Product_one_platform_two Platform_two::better_make_product_one()
{
return Product_one_platform_two();
}
类抽象\u平台{
公众:
virtual~Abstract_platform()=0;//此UML未指定任何函数,但我们将此类抽象化。
};
类平台一:公共抽象平台{
};
类平台二:公共抽象平台{
公众:
///您应该使用shared_ptr实现这个make函数,或者完全不使用指针,但我按照注释执行
产品一个平台二个*制造产品一个();
Product_two_platform_two*make_Product_two();
//我为你提供了一个更好的品牌。它比以前的品牌功能更好
//由于RVO(返回值优化见维基百科)
//这再次暗示了这个UML最初是用于Java的。
产品一个平台两个更好产品一个();
};
一班{
私人:
Abstract_platform*platform;//或共享_ptr,或Abstract_platform&
抽象产品二*产品二;
};
///**执行文件**
产品(一)平台(二)平台(二):制造(一)产品(一)
{
退回新产品_one_platform_two();
}
Product_two_platform_two*platform_two::make_Product_two()
{
退回新产品_two_平台_two();
}
产品一个平台二个平台二:更好的产品一
{
退货产品_一_平台_二();
}
还要注意的是,人们不喜欢Abstract_platform
而是喜欢ipplatform
匈牙利符号,其中“I”代表“接口”。您想要查找。您想要查找。