设计模式
旅行......恶魔...
这个作者很懒,什么都没留下…
展开
-
责任链模式
耦合举例:在一个公司中,如果作为普通员工的你,如果想要请假的话,组长可以签字批准,科长也可以签字批准,部门经理也能签字批准。以上任何一位领导都能签字通过,那么他们在这方面的工作内容就存在了耦合。同样在程序中也一样,类A发出请求,类B可以处理A的请求,类C可以,类D也可以。这样很多类都能处理同一件事情,这样代码中就存在耦合。 针对这种情况就可以使用职责链模式进行解耦处理: 职责链模式的定义:职责链模式是一种行为型设计模式,它通过将请求处理对象组织成链式结构,使得请求在这些处理对象之间传递,直到一个处理原创 2023-07-31 19:45:00 · 79 阅读 · 1 评论 -
单例模式——
正当此时,B查电脑发现没有买车,B也去购买车,这样当AB回来的时候就发现,这个时候小组内居然买了两台,而公司规定一个组只能有一台车,到时廉政公署的人下来查必定会弄死我们。互斥:例如其中一个员工除去采购的时候,另一个员工就等着,不要再出去了,你哪怕不知道他除去买什么东西,都等着,直到东西买回来了再说。条件变量:例如其中一个员工除去采购的时候,另一个员工查看他到底买车还是买其他,如果买车就等着,买其他就立刻去买车。懒汉式:直到调用时,才会对该类进行初始化,所以存在直到整个进程运行结束,都不会实例化的情况。原创 2023-05-20 17:04:35 · 50 阅读 · 0 评论 -
模板方法模式
举例:在有汽车这种产品的场景下,小鹏正在研发会飞的汽车,军方正在研发战车,过程都是在汽车上添加各自需要的功能。1所有不同类型的产品中有一个或多个相同的属性。2在以存在的产品中分系列或者进行迭代。原创 2023-05-20 11:53:54 · 56 阅读 · 0 评论 -
抽象工厂模式
现在由不同的供应商(BYD X SANY)提供,并且每类产品有不同的信号。而该场景下byd只制造汽车,公交车,小鹏只造汽车和四轴汽车,三一重工只制造轮船和货车。后续假设需要加上华为的汽车或手机,小米的汽车或手机,需要先设计手机类Phone,随后创建HuaweiPhone和MiPhone。最后创建各自的工厂。此场景下,设置了虚基类Product,Car,Bus,Ship ,Hevicotor .以及byd工厂,X工厂,和SANY工厂分别处理各自的业务。假设目前存在汽车,公交车,四轴车,货车四类产品。原创 2023-05-17 21:00:00 · 54 阅读 · 0 评论 -
工厂方法模式
假设一家公司生产不同总类的产品但不分系列,例如水果模型公司,包括苹果,桃子,西瓜,柠檬,葡萄......这中场景下使用工厂方法模式最合适不过。1产品总类繁多,但是不用分系列。2需要频繁添加或删除产品总类。以下场景适用于工厂方法模式。原创 2023-05-17 20:15:00 · 49 阅读 · 0 评论 -
简单工厂模式
1所有产品都已确定下来,不再添加新产品也不删除旧产品(如果需要频繁添加或删除产品推荐使用工厂方法模式)2所有产品都属于同一类别(不分系列,这里博主犯了一个错误,如产品分多个系列,推荐使用抽象工厂模式)3产品种类基数不大,否则工厂类将会很臃肿(个人觉得这一点相比前两点对开发影响较小)2 调用者需要添加新产品时候,工厂类的设计着需要修改工厂类的模型。优点 在调用创建产品接口时候,调用者不需要关心创建细节。缺点 1在产品种类较多时候,工厂类将会显得非常臃肿。原创 2023-05-16 17:03:39 · 51 阅读 · 1 评论