当前位置: 首页 > news >正文

广告公司网站(附falsh及源代码)免费观看电影电视剧的软件

广告公司网站(附falsh及源代码),免费观看电影电视剧的软件,石家庄建设工程信息网官网,网页设计师可转行培训目录 1、组合模式#xff08;Composite Pattern#xff09;含义 2、组合模式应用场景 3、组合模式的优缺点 4、组合模式的UML图学习 5、C实现组合模式的简单示例#xff08;公司的OA系统#xff09; 1、组合模式#xff08;Composite Pattern#xff09;含义 组合模…目录 1、组合模式Composite Pattern含义 2、组合模式应用场景 3、组合模式的优缺点 4、组合模式的UML图学习 5、C实现组合模式的简单示例公司的OA系统 1、组合模式Composite Pattern含义 组合模式Composite Pattern又叫部分整体模式是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象用来表示部分以及整体层次。这种类型的设计模式属于结构型模式它创建了对象组的树形结构。 Compose objects into tree structures to represent part-whole hierarchies.Composite lets clients treat individual objects and compositions of objects uniformly. 将对象组合成树形结构以表示“部分-整体”的层次结构使得用户对单个对象和组合对象的使用具有一致性。 来自《设计模式之禅》 2、组合模式应用场景 1当你发现需求中是体现部分与整体层次的结构时例如文件系统视图树公司组织架构等 2当你希望用户可以忽略组合对象与单个对象的不同统一地使用组合结构中的所有对象时就可以考虑组合模式 3、组合模式的优缺点 1优点 1简化客户端代码组合模式使得客户端可以统一对待单个对象和组合对象无需区分它们的类型从而简化了客户端的代码。 2灵活性和可扩展性通过组合模式可以动态地添加、删除和修改对象的结构使得系统更加灵活并且易于扩展。 3统一操作接口组合模式定义了统一的操作接口使得客户端可以一致地处理单个对象和组合对象无需关心具体对象的类型。 4便于创建复杂对象结构组合模式可以将对象组织成树形结构从而方便地创建和管理复杂的对象结构。 2缺点 1设计复杂性增加使用组合模式会引入更多的类和对象从而增加了系统的设计复杂性。这可能会导致代码结构变得复杂不易理解和维护。 2不适合所有场景组合模式适用于表示整体-部分层次结构的情况但并不是所有情况都适合使用组合模式。如果对象之间没有明显的层次关系或者不需要统一对待单个对象和组合对象那么使用组合模式可能会带来不必要的复杂性。 3难以限制组件类型在组合模式中组合对象可以包含其他组合对象或叶子对象。这意味着在编译时很难强制限制组件的类型可能会导致一些运行时错误。 4可能造成性能损失由于组合模式涉及到递归遍历整个对象树可能会导致性能上的一些损失。特别是当对象树非常庞大时遍历操作可能会消耗较多的时间和资源。 尽管组合模式存在一些缺点但它仍然是一种强大且常用的设计模式特别适用于需要处理层次结构的场景。在使用组合模式时需要根据具体的需求和系统设计来权衡其优缺点并确保合理地应用该模式。 4、组合模式的UML图学习 组成元素 1抽象构件角色(Composite)是组合中对象声明接口实现所有类共有接口的默认行为。 2树叶构件角色(Leaf)上述提到的单个对象叶节点没有子节点。 3树枝构件角色(Composite)定义有子部件的组合部件行为存储子部件在Component接口中实现与子部件有关的操作。 4客户端(Client)使用 Component 部件的对象。 5、C实现组合模式的简单示例公司的OA系统 #include iostream #include string #include vector// 组件接口 class Component { public:virtual void display() const 0; };// 叶子对象员工 class Employee : public Component { private:std::string name;public:Employee(const std::string name) : name(name) {}void display() const override {std::cout Employee: name std::endl;} };// 组合对象部门 class Department : public Component { private:std::string name;std::vectorComponent* members;public:Department(const std::string name) : name(name) {}void add(Component* member) {members.push_back(member);}void remove(Component* member) {// 在实际应用中可能需要更复杂的逻辑来删除成员members.erase(std::remove(members.begin(), members.end(), member), members.end());}void display() const override {std::cout Department: name std::endl;for (const auto member : members) {member-display();}} };int main() {// 创建公司的组织结构Department company(Company);Department department1(Department 1);Employee employee1(Employee 1);Employee employee2(Employee 2);Department department2(Department 2);Employee employee3(Employee 3);Employee employee4(Employee 4);// 构建组织结构company.add(department1);company.add(department2);department1.add(employee1);department1.add(employee2);department2.add(employee3);department2.add(employee4);// 显示公司的组织结构company.display();return 0; }在上述示例中我们创建了一个 Component 接口作为组件的基类其中包含了一个 display 方法。Employee 类表示叶子对象Department 类表示组合对象。Department 类中使用了一个 vector 来存储成员。 在 main 函数中我们创建了一个公司对象 company 和两个部门对象 department1 和 department2以及四个员工对象 employee1、employee2、employee3 和 employee4。然后将部门和员工添加到公司的组织结构中。最后调用 company 的 display 方法会递归地显示整个公司的组织结构。 运行以上代码输出将会是 Department: Company Department: Department 1 Employee: Employee 1 Employee: Employee 2 Department: Department 2 Employee: Employee 3 Employee: Employee 4 可以看到组合对象的 display 方法成功地递归调用了所有子组件的 display 方法从而展示了公司的组织结构。 通过组合模式我们可以以统一的方式管理和操作公司的组织结构从而简化了代码的使用和维护。
http://www.hkea.cn/news/14336534/

相关文章:

  • 网站界面 ui 设计答案WordPress网页自动重定向
  • 蒙城网站建设温州公司网站建设
  • 手机网站开发用什么框架好作品设计方案怎么写
  • 上海网站怎么备案表软文推广什么意思
  • 眉山招聘网站建设互联网推广话术
  • 金融类网站开发东莞工厂网站建设
  • 有没有专门做淘宝客的网站新媒体运营培训班
  • 招聘设计师去哪个网站富阳网站制作
  • 网站没有ftp 怎么推广义乌网app下载
  • 电力建设工程质监总站网站另类投资公司网站建设规定
  • 如何通过建立网站赚钱淮南网站优化公司
  • 网站建设高清图中小企业融资服务平台
  • 嘉兴网站建设公司电话网站设计培训班创业
  • 哪个网站的ppt模板最好阜蒙县自治区建设学校网站
  • 餐饮加盟手机网站建设政企网站建设
  • 查询域名的网站平台制作公司
  • 网站建设前的需求分析海外购物网站哪个最好
  • 高校网站平台建设阜宁县城乡建设局新的官方网站
  • 成品网站nike源码1688免费安装wordpress注意什么
  • 句容网站做网站是不是也是暴利
  • 贵阳网站建设王道下拉惠网站 公司形象
  • 网页设计网站开发培训公司网站制作的方法
  • 销售型网站建设承德信息发布微信平台
  • 汕头汽车网站建设国内个人网站搭建
  • 大同市住房城乡建设网站长沙做优化的公司
  • 网站优化怎么学工作室官网
  • 网站前端如何做兼职2023网站推广入口
  • 新型门窗网站模板淘宝网是中国最大的c2c平台
  • 福州做推广有哪些网站高端医院网站建设
  • 自己做网站用什么软件微信 wordpress插件