您当前的位置: 首页 > 
  • 7浏览

    0关注

    157博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

大话设计模式-笔记

牙膏上的小苏打2333 发布时间:2020-10-14 13:48:27 ,浏览量:7

这回看的是实体书
  • 1.简单工厂
  • 2.策略模式
  • 3.单一职责原则
  • 4.开放(扩展)-封闭(修改)原则
  • 5.依赖倒转原则
    • 里氏代换原则
  • 6.装饰模式
  • 7.代理模式
  • 8.工厂方法模式
  • 9.原型模式
  • 10.模板方法模式

1.简单工厂

一个生成各种水果罐头的工厂,根据订单生产对应的罐头给客户。

水果罐头 = 工厂.生产水果罐头("梨罐头");
水果罐头.打开();
Log("好好吃呀");
2.策略模式

它呢跟上面的老兄简单工厂里的工厂很相似,可以把它看作一个保姆,保姆去工厂拿主人想吃的水果罐头。主人完全不需要自己做就可以吃到美味的梨罐头啦。

取罐头的保姆 = new 取罐头的保姆("梨罐头");
Log("保姆把梨罐头取回来啦");
取罐头的保姆.打开罐头();
Log("主人吃的了美味的梨罐头");

保姆封装了一系列琐碎的事情,使得主人可以很安逸的享受服务,比起简单工厂模式如果如果没有保姆代劳这个喜欢吃罐头的主人就要自己去找罐头还要自己开罐头。

3.单一职责原则

在做一个程序时有UI逻辑,要尽量把它们两分离开,在逻辑中避免混杂UI部分可以让容易变化的部分(UI)的改动不会影响到不容易变化的部分(逻辑)。总而言之就是每个人负责的事情要单一,分工合作。

4.开放(扩展)-封闭(修改)原则

尽量让之前写的代码不做修改,而是新增一些类做扩展。需要修改时创建抽象频繁发生的变化来隔离开。

5.依赖倒转原则

“针对接口编程,不要对实现编程。”

#mermaid-svg-7M7Ri5XPUqzfbPbk .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-7M7Ri5XPUqzfbPbk .label text{fill:#333}#mermaid-svg-7M7Ri5XPUqzfbPbk .node rect,#mermaid-svg-7M7Ri5XPUqzfbPbk .node circle,#mermaid-svg-7M7Ri5XPUqzfbPbk .node ellipse,#mermaid-svg-7M7Ri5XPUqzfbPbk .node polygon,#mermaid-svg-7M7Ri5XPUqzfbPbk .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-7M7Ri5XPUqzfbPbk .node .label{text-align:center;fill:#333}#mermaid-svg-7M7Ri5XPUqzfbPbk .node.clickable{cursor:pointer}#mermaid-svg-7M7Ri5XPUqzfbPbk .arrowheadPath{fill:#333}#mermaid-svg-7M7Ri5XPUqzfbPbk .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-7M7Ri5XPUqzfbPbk .flowchart-link{stroke:#333;fill:none}#mermaid-svg-7M7Ri5XPUqzfbPbk .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-7M7Ri5XPUqzfbPbk .edgeLabel rect{opacity:0.9}#mermaid-svg-7M7Ri5XPUqzfbPbk .edgeLabel span{color:#333}#mermaid-svg-7M7Ri5XPUqzfbPbk .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-7M7Ri5XPUqzfbPbk .cluster text{fill:#333}#mermaid-svg-7M7Ri5XPUqzfbPbk div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-7M7Ri5XPUqzfbPbk .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-7M7Ri5XPUqzfbPbk text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-7M7Ri5XPUqzfbPbk .actor-line{stroke:grey}#mermaid-svg-7M7Ri5XPUqzfbPbk .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-7M7Ri5XPUqzfbPbk .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-7M7Ri5XPUqzfbPbk #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-7M7Ri5XPUqzfbPbk .sequenceNumber{fill:#fff}#mermaid-svg-7M7Ri5XPUqzfbPbk #sequencenumber{fill:#333}#mermaid-svg-7M7Ri5XPUqzfbPbk #crosshead path{fill:#333;stroke:#333}#mermaid-svg-7M7Ri5XPUqzfbPbk .messageText{fill:#333;stroke:#333}#mermaid-svg-7M7Ri5XPUqzfbPbk .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-7M7Ri5XPUqzfbPbk .labelText,#mermaid-svg-7M7Ri5XPUqzfbPbk .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-7M7Ri5XPUqzfbPbk .loopText,#mermaid-svg-7M7Ri5XPUqzfbPbk .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-7M7Ri5XPUqzfbPbk .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-7M7Ri5XPUqzfbPbk .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-7M7Ri5XPUqzfbPbk .noteText,#mermaid-svg-7M7Ri5XPUqzfbPbk .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-7M7Ri5XPUqzfbPbk .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-7M7Ri5XPUqzfbPbk .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-7M7Ri5XPUqzfbPbk .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-7M7Ri5XPUqzfbPbk .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7M7Ri5XPUqzfbPbk .section{stroke:none;opacity:0.2}#mermaid-svg-7M7Ri5XPUqzfbPbk .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-7M7Ri5XPUqzfbPbk .section2{fill:#fff400}#mermaid-svg-7M7Ri5XPUqzfbPbk .section1,#mermaid-svg-7M7Ri5XPUqzfbPbk .section3{fill:#fff;opacity:0.2}#mermaid-svg-7M7Ri5XPUqzfbPbk .sectionTitle0{fill:#333}#mermaid-svg-7M7Ri5XPUqzfbPbk .sectionTitle1{fill:#333}#mermaid-svg-7M7Ri5XPUqzfbPbk .sectionTitle2{fill:#333}#mermaid-svg-7M7Ri5XPUqzfbPbk .sectionTitle3{fill:#333}#mermaid-svg-7M7Ri5XPUqzfbPbk .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7M7Ri5XPUqzfbPbk .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-7M7Ri5XPUqzfbPbk .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7M7Ri5XPUqzfbPbk .grid path{stroke-width:0}#mermaid-svg-7M7Ri5XPUqzfbPbk .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-7M7Ri5XPUqzfbPbk .task{stroke-width:2}#mermaid-svg-7M7Ri5XPUqzfbPbk .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7M7Ri5XPUqzfbPbk .taskText:not([font-size]){font-size:11px}#mermaid-svg-7M7Ri5XPUqzfbPbk .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7M7Ri5XPUqzfbPbk .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-7M7Ri5XPUqzfbPbk .task.clickable{cursor:pointer}#mermaid-svg-7M7Ri5XPUqzfbPbk .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-7M7Ri5XPUqzfbPbk .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-7M7Ri5XPUqzfbPbk .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-7M7Ri5XPUqzfbPbk .taskText0,#mermaid-svg-7M7Ri5XPUqzfbPbk .taskText1,#mermaid-svg-7M7Ri5XPUqzfbPbk .taskText2,#mermaid-svg-7M7Ri5XPUqzfbPbk .taskText3{fill:#fff}#mermaid-svg-7M7Ri5XPUqzfbPbk .task0,#mermaid-svg-7M7Ri5XPUqzfbPbk .task1,#mermaid-svg-7M7Ri5XPUqzfbPbk .task2,#mermaid-svg-7M7Ri5XPUqzfbPbk .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-7M7Ri5XPUqzfbPbk .taskTextOutside0,#mermaid-svg-7M7Ri5XPUqzfbPbk .taskTextOutside2{fill:#000}#mermaid-svg-7M7Ri5XPUqzfbPbk .taskTextOutside1,#mermaid-svg-7M7Ri5XPUqzfbPbk .taskTextOutside3{fill:#000}#mermaid-svg-7M7Ri5XPUqzfbPbk .active0,#mermaid-svg-7M7Ri5XPUqzfbPbk .active1,#mermaid-svg-7M7Ri5XPUqzfbPbk .active2,#mermaid-svg-7M7Ri5XPUqzfbPbk .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-7M7Ri5XPUqzfbPbk .activeText0,#mermaid-svg-7M7Ri5XPUqzfbPbk .activeText1,#mermaid-svg-7M7Ri5XPUqzfbPbk .activeText2,#mermaid-svg-7M7Ri5XPUqzfbPbk .activeText3{fill:#000 !important}#mermaid-svg-7M7Ri5XPUqzfbPbk .done0,#mermaid-svg-7M7Ri5XPUqzfbPbk .done1,#mermaid-svg-7M7Ri5XPUqzfbPbk .done2,#mermaid-svg-7M7Ri5XPUqzfbPbk .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-7M7Ri5XPUqzfbPbk .doneText0,#mermaid-svg-7M7Ri5XPUqzfbPbk .doneText1,#mermaid-svg-7M7Ri5XPUqzfbPbk .doneText2,#mermaid-svg-7M7Ri5XPUqzfbPbk .doneText3{fill:#000 !important}#mermaid-svg-7M7Ri5XPUqzfbPbk .crit0,#mermaid-svg-7M7Ri5XPUqzfbPbk .crit1,#mermaid-svg-7M7Ri5XPUqzfbPbk .crit2,#mermaid-svg-7M7Ri5XPUqzfbPbk .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-7M7Ri5XPUqzfbPbk .activeCrit0,#mermaid-svg-7M7Ri5XPUqzfbPbk .activeCrit1,#mermaid-svg-7M7Ri5XPUqzfbPbk .activeCrit2,#mermaid-svg-7M7Ri5XPUqzfbPbk .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-7M7Ri5XPUqzfbPbk .doneCrit0,#mermaid-svg-7M7Ri5XPUqzfbPbk .doneCrit1,#mermaid-svg-7M7Ri5XPUqzfbPbk .doneCrit2,#mermaid-svg-7M7Ri5XPUqzfbPbk .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-7M7Ri5XPUqzfbPbk .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-7M7Ri5XPUqzfbPbk .milestoneText{font-style:italic}#mermaid-svg-7M7Ri5XPUqzfbPbk .doneCritText0,#mermaid-svg-7M7Ri5XPUqzfbPbk .doneCritText1,#mermaid-svg-7M7Ri5XPUqzfbPbk .doneCritText2,#mermaid-svg-7M7Ri5XPUqzfbPbk .doneCritText3{fill:#000 !important}#mermaid-svg-7M7Ri5XPUqzfbPbk .activeCritText0,#mermaid-svg-7M7Ri5XPUqzfbPbk .activeCritText1,#mermaid-svg-7M7Ri5XPUqzfbPbk .activeCritText2,#mermaid-svg-7M7Ri5XPUqzfbPbk .activeCritText3{fill:#000 !important}#mermaid-svg-7M7Ri5XPUqzfbPbk .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7M7Ri5XPUqzfbPbk g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-7M7Ri5XPUqzfbPbk g.classGroup text .title{font-weight:bolder}#mermaid-svg-7M7Ri5XPUqzfbPbk g.clickable{cursor:pointer}#mermaid-svg-7M7Ri5XPUqzfbPbk g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-7M7Ri5XPUqzfbPbk g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-7M7Ri5XPUqzfbPbk .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-7M7Ri5XPUqzfbPbk .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-7M7Ri5XPUqzfbPbk .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-7M7Ri5XPUqzfbPbk .dashed-line{stroke-dasharray:3}#mermaid-svg-7M7Ri5XPUqzfbPbk #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-7M7Ri5XPUqzfbPbk #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-7M7Ri5XPUqzfbPbk #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-7M7Ri5XPUqzfbPbk #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-7M7Ri5XPUqzfbPbk #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-7M7Ri5XPUqzfbPbk #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-7M7Ri5XPUqzfbPbk #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-7M7Ri5XPUqzfbPbk #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-7M7Ri5XPUqzfbPbk .commit-id,#mermaid-svg-7M7Ri5XPUqzfbPbk .commit-msg,#mermaid-svg-7M7Ri5XPUqzfbPbk .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7M7Ri5XPUqzfbPbk .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7M7Ri5XPUqzfbPbk .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7M7Ri5XPUqzfbPbk g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7M7Ri5XPUqzfbPbk g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-7M7Ri5XPUqzfbPbk g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-7M7Ri5XPUqzfbPbk g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-7M7Ri5XPUqzfbPbk g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-7M7Ri5XPUqzfbPbk g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-7M7Ri5XPUqzfbPbk .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-7M7Ri5XPUqzfbPbk .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-7M7Ri5XPUqzfbPbk .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-7M7Ri5XPUqzfbPbk .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-7M7Ri5XPUqzfbPbk .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-7M7Ri5XPUqzfbPbk .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-7M7Ri5XPUqzfbPbk .edgeLabel text{fill:#333}#mermaid-svg-7M7Ri5XPUqzfbPbk .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7M7Ri5XPUqzfbPbk .node circle.state-start{fill:black;stroke:black}#mermaid-svg-7M7Ri5XPUqzfbPbk .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-7M7Ri5XPUqzfbPbk #statediagram-barbEnd{fill:#9370db}#mermaid-svg-7M7Ri5XPUqzfbPbk .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-7M7Ri5XPUqzfbPbk .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-7M7Ri5XPUqzfbPbk .statediagram-state .divider{stroke:#9370db}#mermaid-svg-7M7Ri5XPUqzfbPbk .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-7M7Ri5XPUqzfbPbk .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-7M7Ri5XPUqzfbPbk .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-7M7Ri5XPUqzfbPbk .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-7M7Ri5XPUqzfbPbk .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-7M7Ri5XPUqzfbPbk .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-7M7Ri5XPUqzfbPbk .note-edge{stroke-dasharray:5}#mermaid-svg-7M7Ri5XPUqzfbPbk .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-7M7Ri5XPUqzfbPbk .error-icon{fill:#522}#mermaid-svg-7M7Ri5XPUqzfbPbk .error-text{fill:#522;stroke:#522}#mermaid-svg-7M7Ri5XPUqzfbPbk .edge-thickness-normal{stroke-width:2px}#mermaid-svg-7M7Ri5XPUqzfbPbk .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-7M7Ri5XPUqzfbPbk .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-7M7Ri5XPUqzfbPbk .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-7M7Ri5XPUqzfbPbk .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-7M7Ri5XPUqzfbPbk .marker{fill:#333}#mermaid-svg-7M7Ri5XPUqzfbPbk .marker.cross{stroke:#333} :root { --mermaid-font-family: "trebuchet ms", verdana, arial;} #mermaid-svg-7M7Ri5XPUqzfbPbk { color: rgba(0, 0, 0, 0.75); font: ; }
调用
高层模块
低层模块
xxx接口
里氏代换原则

子类拥有父类所有的非private的方法和属性。 如下图所示,因为鸵鸟并不具备飞行的功能,如果继承了鸟类鸵鸟就会飞行了,这是不对的。因此鸵鸟不能继承鸟类

#mermaid-svg-9xk19rMfp4cb0fDb .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-9xk19rMfp4cb0fDb .label text{fill:#333}#mermaid-svg-9xk19rMfp4cb0fDb .node rect,#mermaid-svg-9xk19rMfp4cb0fDb .node circle,#mermaid-svg-9xk19rMfp4cb0fDb .node ellipse,#mermaid-svg-9xk19rMfp4cb0fDb .node polygon,#mermaid-svg-9xk19rMfp4cb0fDb .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-9xk19rMfp4cb0fDb .node .label{text-align:center;fill:#333}#mermaid-svg-9xk19rMfp4cb0fDb .node.clickable{cursor:pointer}#mermaid-svg-9xk19rMfp4cb0fDb .arrowheadPath{fill:#333}#mermaid-svg-9xk19rMfp4cb0fDb .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-9xk19rMfp4cb0fDb .flowchart-link{stroke:#333;fill:none}#mermaid-svg-9xk19rMfp4cb0fDb .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-9xk19rMfp4cb0fDb .edgeLabel rect{opacity:0.9}#mermaid-svg-9xk19rMfp4cb0fDb .edgeLabel span{color:#333}#mermaid-svg-9xk19rMfp4cb0fDb .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-9xk19rMfp4cb0fDb .cluster text{fill:#333}#mermaid-svg-9xk19rMfp4cb0fDb div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-9xk19rMfp4cb0fDb .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-9xk19rMfp4cb0fDb text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-9xk19rMfp4cb0fDb .actor-line{stroke:grey}#mermaid-svg-9xk19rMfp4cb0fDb .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-9xk19rMfp4cb0fDb .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-9xk19rMfp4cb0fDb #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-9xk19rMfp4cb0fDb .sequenceNumber{fill:#fff}#mermaid-svg-9xk19rMfp4cb0fDb #sequencenumber{fill:#333}#mermaid-svg-9xk19rMfp4cb0fDb #crosshead path{fill:#333;stroke:#333}#mermaid-svg-9xk19rMfp4cb0fDb .messageText{fill:#333;stroke:#333}#mermaid-svg-9xk19rMfp4cb0fDb .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-9xk19rMfp4cb0fDb .labelText,#mermaid-svg-9xk19rMfp4cb0fDb .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-9xk19rMfp4cb0fDb .loopText,#mermaid-svg-9xk19rMfp4cb0fDb .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-9xk19rMfp4cb0fDb .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-9xk19rMfp4cb0fDb .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-9xk19rMfp4cb0fDb .noteText,#mermaid-svg-9xk19rMfp4cb0fDb .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-9xk19rMfp4cb0fDb .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-9xk19rMfp4cb0fDb .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-9xk19rMfp4cb0fDb .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-9xk19rMfp4cb0fDb .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-9xk19rMfp4cb0fDb .section{stroke:none;opacity:0.2}#mermaid-svg-9xk19rMfp4cb0fDb .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-9xk19rMfp4cb0fDb .section2{fill:#fff400}#mermaid-svg-9xk19rMfp4cb0fDb .section1,#mermaid-svg-9xk19rMfp4cb0fDb .section3{fill:#fff;opacity:0.2}#mermaid-svg-9xk19rMfp4cb0fDb .sectionTitle0{fill:#333}#mermaid-svg-9xk19rMfp4cb0fDb .sectionTitle1{fill:#333}#mermaid-svg-9xk19rMfp4cb0fDb .sectionTitle2{fill:#333}#mermaid-svg-9xk19rMfp4cb0fDb .sectionTitle3{fill:#333}#mermaid-svg-9xk19rMfp4cb0fDb .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-9xk19rMfp4cb0fDb .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-9xk19rMfp4cb0fDb .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-9xk19rMfp4cb0fDb .grid path{stroke-width:0}#mermaid-svg-9xk19rMfp4cb0fDb .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-9xk19rMfp4cb0fDb .task{stroke-width:2}#mermaid-svg-9xk19rMfp4cb0fDb .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-9xk19rMfp4cb0fDb .taskText:not([font-size]){font-size:11px}#mermaid-svg-9xk19rMfp4cb0fDb .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-9xk19rMfp4cb0fDb .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-9xk19rMfp4cb0fDb .task.clickable{cursor:pointer}#mermaid-svg-9xk19rMfp4cb0fDb .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-9xk19rMfp4cb0fDb .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-9xk19rMfp4cb0fDb .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-9xk19rMfp4cb0fDb .taskText0,#mermaid-svg-9xk19rMfp4cb0fDb .taskText1,#mermaid-svg-9xk19rMfp4cb0fDb .taskText2,#mermaid-svg-9xk19rMfp4cb0fDb .taskText3{fill:#fff}#mermaid-svg-9xk19rMfp4cb0fDb .task0,#mermaid-svg-9xk19rMfp4cb0fDb .task1,#mermaid-svg-9xk19rMfp4cb0fDb .task2,#mermaid-svg-9xk19rMfp4cb0fDb .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-9xk19rMfp4cb0fDb .taskTextOutside0,#mermaid-svg-9xk19rMfp4cb0fDb .taskTextOutside2{fill:#000}#mermaid-svg-9xk19rMfp4cb0fDb .taskTextOutside1,#mermaid-svg-9xk19rMfp4cb0fDb .taskTextOutside3{fill:#000}#mermaid-svg-9xk19rMfp4cb0fDb .active0,#mermaid-svg-9xk19rMfp4cb0fDb .active1,#mermaid-svg-9xk19rMfp4cb0fDb .active2,#mermaid-svg-9xk19rMfp4cb0fDb .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-9xk19rMfp4cb0fDb .activeText0,#mermaid-svg-9xk19rMfp4cb0fDb .activeText1,#mermaid-svg-9xk19rMfp4cb0fDb .activeText2,#mermaid-svg-9xk19rMfp4cb0fDb .activeText3{fill:#000 !important}#mermaid-svg-9xk19rMfp4cb0fDb .done0,#mermaid-svg-9xk19rMfp4cb0fDb .done1,#mermaid-svg-9xk19rMfp4cb0fDb .done2,#mermaid-svg-9xk19rMfp4cb0fDb .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-9xk19rMfp4cb0fDb .doneText0,#mermaid-svg-9xk19rMfp4cb0fDb .doneText1,#mermaid-svg-9xk19rMfp4cb0fDb .doneText2,#mermaid-svg-9xk19rMfp4cb0fDb .doneText3{fill:#000 !important}#mermaid-svg-9xk19rMfp4cb0fDb .crit0,#mermaid-svg-9xk19rMfp4cb0fDb .crit1,#mermaid-svg-9xk19rMfp4cb0fDb .crit2,#mermaid-svg-9xk19rMfp4cb0fDb .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-9xk19rMfp4cb0fDb .activeCrit0,#mermaid-svg-9xk19rMfp4cb0fDb .activeCrit1,#mermaid-svg-9xk19rMfp4cb0fDb .activeCrit2,#mermaid-svg-9xk19rMfp4cb0fDb .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-9xk19rMfp4cb0fDb .doneCrit0,#mermaid-svg-9xk19rMfp4cb0fDb .doneCrit1,#mermaid-svg-9xk19rMfp4cb0fDb .doneCrit2,#mermaid-svg-9xk19rMfp4cb0fDb .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-9xk19rMfp4cb0fDb .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-9xk19rMfp4cb0fDb .milestoneText{font-style:italic}#mermaid-svg-9xk19rMfp4cb0fDb .doneCritText0,#mermaid-svg-9xk19rMfp4cb0fDb .doneCritText1,#mermaid-svg-9xk19rMfp4cb0fDb .doneCritText2,#mermaid-svg-9xk19rMfp4cb0fDb .doneCritText3{fill:#000 !important}#mermaid-svg-9xk19rMfp4cb0fDb .activeCritText0,#mermaid-svg-9xk19rMfp4cb0fDb .activeCritText1,#mermaid-svg-9xk19rMfp4cb0fDb .activeCritText2,#mermaid-svg-9xk19rMfp4cb0fDb .activeCritText3{fill:#000 !important}#mermaid-svg-9xk19rMfp4cb0fDb .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-9xk19rMfp4cb0fDb g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-9xk19rMfp4cb0fDb g.classGroup text .title{font-weight:bolder}#mermaid-svg-9xk19rMfp4cb0fDb g.clickable{cursor:pointer}#mermaid-svg-9xk19rMfp4cb0fDb g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-9xk19rMfp4cb0fDb g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-9xk19rMfp4cb0fDb .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-9xk19rMfp4cb0fDb .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-9xk19rMfp4cb0fDb .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-9xk19rMfp4cb0fDb .dashed-line{stroke-dasharray:3}#mermaid-svg-9xk19rMfp4cb0fDb #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-9xk19rMfp4cb0fDb #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-9xk19rMfp4cb0fDb #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-9xk19rMfp4cb0fDb #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-9xk19rMfp4cb0fDb #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-9xk19rMfp4cb0fDb #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-9xk19rMfp4cb0fDb #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-9xk19rMfp4cb0fDb #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-9xk19rMfp4cb0fDb .commit-id,#mermaid-svg-9xk19rMfp4cb0fDb .commit-msg,#mermaid-svg-9xk19rMfp4cb0fDb .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-9xk19rMfp4cb0fDb .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-9xk19rMfp4cb0fDb .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-9xk19rMfp4cb0fDb g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-9xk19rMfp4cb0fDb g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-9xk19rMfp4cb0fDb g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-9xk19rMfp4cb0fDb g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-9xk19rMfp4cb0fDb g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-9xk19rMfp4cb0fDb g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-9xk19rMfp4cb0fDb .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-9xk19rMfp4cb0fDb .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-9xk19rMfp4cb0fDb .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-9xk19rMfp4cb0fDb .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-9xk19rMfp4cb0fDb .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-9xk19rMfp4cb0fDb .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-9xk19rMfp4cb0fDb .edgeLabel text{fill:#333}#mermaid-svg-9xk19rMfp4cb0fDb .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-9xk19rMfp4cb0fDb .node circle.state-start{fill:black;stroke:black}#mermaid-svg-9xk19rMfp4cb0fDb .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-9xk19rMfp4cb0fDb #statediagram-barbEnd{fill:#9370db}#mermaid-svg-9xk19rMfp4cb0fDb .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-9xk19rMfp4cb0fDb .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-9xk19rMfp4cb0fDb .statediagram-state .divider{stroke:#9370db}#mermaid-svg-9xk19rMfp4cb0fDb .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-9xk19rMfp4cb0fDb .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-9xk19rMfp4cb0fDb .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-9xk19rMfp4cb0fDb .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-9xk19rMfp4cb0fDb .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-9xk19rMfp4cb0fDb .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-9xk19rMfp4cb0fDb .note-edge{stroke-dasharray:5}#mermaid-svg-9xk19rMfp4cb0fDb .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-9xk19rMfp4cb0fDb .error-icon{fill:#522}#mermaid-svg-9xk19rMfp4cb0fDb .error-text{fill:#522;stroke:#522}#mermaid-svg-9xk19rMfp4cb0fDb .edge-thickness-normal{stroke-width:2px}#mermaid-svg-9xk19rMfp4cb0fDb .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-9xk19rMfp4cb0fDb .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-9xk19rMfp4cb0fDb .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-9xk19rMfp4cb0fDb .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-9xk19rMfp4cb0fDb .marker{fill:#333}#mermaid-svg-9xk19rMfp4cb0fDb .marker.cross{stroke:#333} :root { --mermaid-font-family: "trebuchet ms", verdana, arial;} #mermaid-svg-9xk19rMfp4cb0fDb { color: rgba(0, 0, 0, 0.75); font: ; } 鸟类 +飞行() 鸵鸟 +奔跑() x不能继承x
6.装饰模式

安妮在给它的小熊打扮,她给小熊穿上了绣着鲜花的七分裤子,然后给小熊穿上了洁白的衬衫,给它戴了顶大大的太阳帽。打扮好后安妮把小熊塞进了新买的书包上学去啦。 装饰模式把小熊和装饰分离,安妮按顺序给小熊穿搭,不同的顺序会打扮出不一样的小熊熊哦~(内裤与外裤←_←)。

7.代理模式

代理代理取而代之。当下疫情未过很多人通过点外卖的方式吃饭,通过外卖小哥配送(代理、代劳)就可以在家取到可口的街边美食了。喝酒应酬不能开车需要找代驾…总之就是找个替身你会的那个替身就必须会,代替你做事情隐藏自己的身份(其实我的真实身份是🤫)

8.工厂方法模式

因为在简单工厂模式中添加新的功能时需要在代码中做修改(添加case分支)违背了开放-封闭原则,这时工厂方法模式孕育而生,它把工厂的实例化延迟到了子类,把case分支拆分成一个个工厂子类

#mermaid-svg-DwGV5kX3NYHn8PPo .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-DwGV5kX3NYHn8PPo .label text{fill:#333}#mermaid-svg-DwGV5kX3NYHn8PPo .node rect,#mermaid-svg-DwGV5kX3NYHn8PPo .node circle,#mermaid-svg-DwGV5kX3NYHn8PPo .node ellipse,#mermaid-svg-DwGV5kX3NYHn8PPo .node polygon,#mermaid-svg-DwGV5kX3NYHn8PPo .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-DwGV5kX3NYHn8PPo .node .label{text-align:center;fill:#333}#mermaid-svg-DwGV5kX3NYHn8PPo .node.clickable{cursor:pointer}#mermaid-svg-DwGV5kX3NYHn8PPo .arrowheadPath{fill:#333}#mermaid-svg-DwGV5kX3NYHn8PPo .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-DwGV5kX3NYHn8PPo .flowchart-link{stroke:#333;fill:none}#mermaid-svg-DwGV5kX3NYHn8PPo .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-DwGV5kX3NYHn8PPo .edgeLabel rect{opacity:0.9}#mermaid-svg-DwGV5kX3NYHn8PPo .edgeLabel span{color:#333}#mermaid-svg-DwGV5kX3NYHn8PPo .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-DwGV5kX3NYHn8PPo .cluster text{fill:#333}#mermaid-svg-DwGV5kX3NYHn8PPo div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-DwGV5kX3NYHn8PPo .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-DwGV5kX3NYHn8PPo text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-DwGV5kX3NYHn8PPo .actor-line{stroke:grey}#mermaid-svg-DwGV5kX3NYHn8PPo .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-DwGV5kX3NYHn8PPo .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-DwGV5kX3NYHn8PPo #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-DwGV5kX3NYHn8PPo .sequenceNumber{fill:#fff}#mermaid-svg-DwGV5kX3NYHn8PPo #sequencenumber{fill:#333}#mermaid-svg-DwGV5kX3NYHn8PPo #crosshead path{fill:#333;stroke:#333}#mermaid-svg-DwGV5kX3NYHn8PPo .messageText{fill:#333;stroke:#333}#mermaid-svg-DwGV5kX3NYHn8PPo .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-DwGV5kX3NYHn8PPo .labelText,#mermaid-svg-DwGV5kX3NYHn8PPo .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-DwGV5kX3NYHn8PPo .loopText,#mermaid-svg-DwGV5kX3NYHn8PPo .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-DwGV5kX3NYHn8PPo .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-DwGV5kX3NYHn8PPo .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-DwGV5kX3NYHn8PPo .noteText,#mermaid-svg-DwGV5kX3NYHn8PPo .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-DwGV5kX3NYHn8PPo .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-DwGV5kX3NYHn8PPo .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-DwGV5kX3NYHn8PPo .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-DwGV5kX3NYHn8PPo .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-DwGV5kX3NYHn8PPo .section{stroke:none;opacity:0.2}#mermaid-svg-DwGV5kX3NYHn8PPo .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-DwGV5kX3NYHn8PPo .section2{fill:#fff400}#mermaid-svg-DwGV5kX3NYHn8PPo .section1,#mermaid-svg-DwGV5kX3NYHn8PPo .section3{fill:#fff;opacity:0.2}#mermaid-svg-DwGV5kX3NYHn8PPo .sectionTitle0{fill:#333}#mermaid-svg-DwGV5kX3NYHn8PPo .sectionTitle1{fill:#333}#mermaid-svg-DwGV5kX3NYHn8PPo .sectionTitle2{fill:#333}#mermaid-svg-DwGV5kX3NYHn8PPo .sectionTitle3{fill:#333}#mermaid-svg-DwGV5kX3NYHn8PPo .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-DwGV5kX3NYHn8PPo .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-DwGV5kX3NYHn8PPo .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-DwGV5kX3NYHn8PPo .grid path{stroke-width:0}#mermaid-svg-DwGV5kX3NYHn8PPo .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-DwGV5kX3NYHn8PPo .task{stroke-width:2}#mermaid-svg-DwGV5kX3NYHn8PPo .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-DwGV5kX3NYHn8PPo .taskText:not([font-size]){font-size:11px}#mermaid-svg-DwGV5kX3NYHn8PPo .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-DwGV5kX3NYHn8PPo .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-DwGV5kX3NYHn8PPo .task.clickable{cursor:pointer}#mermaid-svg-DwGV5kX3NYHn8PPo .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-DwGV5kX3NYHn8PPo .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-DwGV5kX3NYHn8PPo .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-DwGV5kX3NYHn8PPo .taskText0,#mermaid-svg-DwGV5kX3NYHn8PPo .taskText1,#mermaid-svg-DwGV5kX3NYHn8PPo .taskText2,#mermaid-svg-DwGV5kX3NYHn8PPo .taskText3{fill:#fff}#mermaid-svg-DwGV5kX3NYHn8PPo .task0,#mermaid-svg-DwGV5kX3NYHn8PPo .task1,#mermaid-svg-DwGV5kX3NYHn8PPo .task2,#mermaid-svg-DwGV5kX3NYHn8PPo .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-DwGV5kX3NYHn8PPo .taskTextOutside0,#mermaid-svg-DwGV5kX3NYHn8PPo .taskTextOutside2{fill:#000}#mermaid-svg-DwGV5kX3NYHn8PPo .taskTextOutside1,#mermaid-svg-DwGV5kX3NYHn8PPo .taskTextOutside3{fill:#000}#mermaid-svg-DwGV5kX3NYHn8PPo .active0,#mermaid-svg-DwGV5kX3NYHn8PPo .active1,#mermaid-svg-DwGV5kX3NYHn8PPo .active2,#mermaid-svg-DwGV5kX3NYHn8PPo .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-DwGV5kX3NYHn8PPo .activeText0,#mermaid-svg-DwGV5kX3NYHn8PPo .activeText1,#mermaid-svg-DwGV5kX3NYHn8PPo .activeText2,#mermaid-svg-DwGV5kX3NYHn8PPo .activeText3{fill:#000 !important}#mermaid-svg-DwGV5kX3NYHn8PPo .done0,#mermaid-svg-DwGV5kX3NYHn8PPo .done1,#mermaid-svg-DwGV5kX3NYHn8PPo .done2,#mermaid-svg-DwGV5kX3NYHn8PPo .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-DwGV5kX3NYHn8PPo .doneText0,#mermaid-svg-DwGV5kX3NYHn8PPo .doneText1,#mermaid-svg-DwGV5kX3NYHn8PPo .doneText2,#mermaid-svg-DwGV5kX3NYHn8PPo .doneText3{fill:#000 !important}#mermaid-svg-DwGV5kX3NYHn8PPo .crit0,#mermaid-svg-DwGV5kX3NYHn8PPo .crit1,#mermaid-svg-DwGV5kX3NYHn8PPo .crit2,#mermaid-svg-DwGV5kX3NYHn8PPo .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-DwGV5kX3NYHn8PPo .activeCrit0,#mermaid-svg-DwGV5kX3NYHn8PPo .activeCrit1,#mermaid-svg-DwGV5kX3NYHn8PPo .activeCrit2,#mermaid-svg-DwGV5kX3NYHn8PPo .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-DwGV5kX3NYHn8PPo .doneCrit0,#mermaid-svg-DwGV5kX3NYHn8PPo .doneCrit1,#mermaid-svg-DwGV5kX3NYHn8PPo .doneCrit2,#mermaid-svg-DwGV5kX3NYHn8PPo .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-DwGV5kX3NYHn8PPo .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-DwGV5kX3NYHn8PPo .milestoneText{font-style:italic}#mermaid-svg-DwGV5kX3NYHn8PPo .doneCritText0,#mermaid-svg-DwGV5kX3NYHn8PPo .doneCritText1,#mermaid-svg-DwGV5kX3NYHn8PPo .doneCritText2,#mermaid-svg-DwGV5kX3NYHn8PPo .doneCritText3{fill:#000 !important}#mermaid-svg-DwGV5kX3NYHn8PPo .activeCritText0,#mermaid-svg-DwGV5kX3NYHn8PPo .activeCritText1,#mermaid-svg-DwGV5kX3NYHn8PPo .activeCritText2,#mermaid-svg-DwGV5kX3NYHn8PPo .activeCritText3{fill:#000 !important}#mermaid-svg-DwGV5kX3NYHn8PPo .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-DwGV5kX3NYHn8PPo g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-DwGV5kX3NYHn8PPo g.classGroup text .title{font-weight:bolder}#mermaid-svg-DwGV5kX3NYHn8PPo g.clickable{cursor:pointer}#mermaid-svg-DwGV5kX3NYHn8PPo g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-DwGV5kX3NYHn8PPo g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-DwGV5kX3NYHn8PPo .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-DwGV5kX3NYHn8PPo .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-DwGV5kX3NYHn8PPo .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-DwGV5kX3NYHn8PPo .dashed-line{stroke-dasharray:3}#mermaid-svg-DwGV5kX3NYHn8PPo #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-DwGV5kX3NYHn8PPo #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-DwGV5kX3NYHn8PPo #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-DwGV5kX3NYHn8PPo #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-DwGV5kX3NYHn8PPo #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-DwGV5kX3NYHn8PPo #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-DwGV5kX3NYHn8PPo #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-DwGV5kX3NYHn8PPo #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-DwGV5kX3NYHn8PPo .commit-id,#mermaid-svg-DwGV5kX3NYHn8PPo .commit-msg,#mermaid-svg-DwGV5kX3NYHn8PPo .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-DwGV5kX3NYHn8PPo .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-DwGV5kX3NYHn8PPo .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-DwGV5kX3NYHn8PPo g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-DwGV5kX3NYHn8PPo g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-DwGV5kX3NYHn8PPo g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-DwGV5kX3NYHn8PPo g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-DwGV5kX3NYHn8PPo g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-DwGV5kX3NYHn8PPo g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-DwGV5kX3NYHn8PPo .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-DwGV5kX3NYHn8PPo .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-DwGV5kX3NYHn8PPo .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-DwGV5kX3NYHn8PPo .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-DwGV5kX3NYHn8PPo .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-DwGV5kX3NYHn8PPo .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-DwGV5kX3NYHn8PPo .edgeLabel text{fill:#333}#mermaid-svg-DwGV5kX3NYHn8PPo .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-DwGV5kX3NYHn8PPo .node circle.state-start{fill:black;stroke:black}#mermaid-svg-DwGV5kX3NYHn8PPo .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-DwGV5kX3NYHn8PPo #statediagram-barbEnd{fill:#9370db}#mermaid-svg-DwGV5kX3NYHn8PPo .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-DwGV5kX3NYHn8PPo .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-DwGV5kX3NYHn8PPo .statediagram-state .divider{stroke:#9370db}#mermaid-svg-DwGV5kX3NYHn8PPo .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-DwGV5kX3NYHn8PPo .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-DwGV5kX3NYHn8PPo .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-DwGV5kX3NYHn8PPo .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-DwGV5kX3NYHn8PPo .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-DwGV5kX3NYHn8PPo .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-DwGV5kX3NYHn8PPo .note-edge{stroke-dasharray:5}#mermaid-svg-DwGV5kX3NYHn8PPo .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-DwGV5kX3NYHn8PPo .error-icon{fill:#522}#mermaid-svg-DwGV5kX3NYHn8PPo .error-text{fill:#522;stroke:#522}#mermaid-svg-DwGV5kX3NYHn8PPo .edge-thickness-normal{stroke-width:2px}#mermaid-svg-DwGV5kX3NYHn8PPo .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-DwGV5kX3NYHn8PPo .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-DwGV5kX3NYHn8PPo .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-DwGV5kX3NYHn8PPo .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-DwGV5kX3NYHn8PPo .marker{fill:#333}#mermaid-svg-DwGV5kX3NYHn8PPo .marker.cross{stroke:#333} :root { --mermaid-font-family: "trebuchet ms", verdana, arial;} #mermaid-svg-DwGV5kX3NYHn8PPo { color: rgba(0, 0, 0, 0.75); font: ; }
工厂方法模式
简单工厂模式
分支
分支
分支
继承
继承
继承
实例化
实例化
实例化
实例化
工厂子类:0
工厂子类:1
工厂子类:2
工厂
简单工厂
case:0
case:1
case:2
实例
9.原型模式

构造函数执行时间耗时的情况下可以通过克隆(即原型模式)的方式实例化一个对象以提高性能。 .NET在System命名空间中提供了ICloneable接口来实现原型模式,->MemberwiseClone(浅表复制)。在Unity中原型模式最最最常见了->Prefab(预制体)。

10.模板方法模式

在父类中定义一个操作算法框架,将里面的某些步骤延迟到子类实现,子类就不需要关系算法的逻辑了。每个人是继承自人类,人有学习的功能,获取知识的途径(看书、上网、微服私访、…),这些知识进入大脑后,不同的人会按自己独有的方式吸收知识:

Mon 06 12:00 Tue 07 12:00 Wed 08 12:00 Thu 09 12:00 Fri 10 知识来源:看书 吸收方式:躺着 知识来源:上网 吸收方式:坐着 知识来源:微服私访 吸收方式:边走边看 人类一号 人类二号 人类三号 人类的功能:学习知识
关注
打赏
1664520285
查看更多评论
立即登录/注册

微信扫码登录

0.3765s