网站备案是自己可以做吗,厦门房产网,dede网站地图栏目如何上传文件,竞价推广账户竞价托管费用文章目录 引言正文简单工厂模式策略模式策略模式和工厂模式的结合策略模式解析 总结 引言
一个一个来吧#xff0c;面试腾讯的时候#xff0c;问了我单例模式相关的东西#xff0c;自己这方面的东西#xff0c;还没有看过。这里需要需要补充一下。但是设计模式有很多… 文章目录 引言正文简单工厂模式策略模式策略模式和工厂模式的结合策略模式解析 总结 引言
一个一个来吧面试腾讯的时候问了我单例模式相关的东西自己这方面的东西还没有看过。这里需要需要补充一下。但是设计模式有很多今天就来了解简单工厂模式、策略模式以及单例模式的。道阻且长一步一步来吧。这里所有的材料和截图都是来自于《大话设计模式》
正文
简单工厂模式
对于程序开发中容易改变的地方应该考虑使用一个单独的类来做这个创建实例的过程这就是工厂。 使用一个factory作为工厂类其中的成员代表它能够生产的产品的类别然后具体的产生的样本是这个产品类别对应的具体的不同的实例对象。 加减乘除等几个操作符号都是operation操作符号的子类通过父类接口可以进行调用。
为什么叫做工厂
个人理解你给我一个加工指标我给你一个对应的符合你指标的对象然后统一用这些子类加工指标的父类进行处理。
策略模式
定义了算法家族分别封装起来让他们之间可以互相替换该模式让算法的变化不会影响到使用算法的客户。
具体结构图如下 具体的所有的策略都是继承Strategy然后具体实现对应的抽象方法通过strategy接口来调用不同子类对象实现多态context会以父类成员实例对象作为成员函数对应的构造函数中需要传入对应的strategy对象然后在调用对应的接口。
具体调用图如下 需要的在context中传入具体已经创建好的对象也就是说对象是在接口界面创建的。
策略模式和工厂模式的结合
将具体的工厂对象工厂的算法子类进行替换context中返回的是结果接受的是需要处理的不同对象然后是通过单例模式调用的 将对象的创建和接口信息统一转移到context文件中 简单工厂模式让客户知道CashSuper以及对应的具体的现金工厂对象相当于同时知道两个类。但是将策略模式和工厂模式融合之后客户端只需要的知道cashcontext这一个策略上下文对象进一步实现解耦。
策略模式解析
针对完成功能相同》输入和输出是相同但是具体的实现逻辑和细节是不同的所以需要以相同的方式调用所有的算法减少各类算法和实用类之间的耦合度
优点 策略模式的Strategy类层次为 Context定义了一系列可供重用的算法继承有助于析取这些算法中的公共功能的 不同的打折策略公共的功能就接受金额并返回金额。 简化了单元测试每一个算法都有自己的类可以通过自己的接口单独测试
总结
策略模式是用来封装算法的不仅仅用来封装算法可以封装几乎任何类型的规则 只要在分析过程中听到的需要在不同时间应用不同的业务规则就可以考虑使用策略模式处理这种变化 基本策略模式中选择所用具体实现的职责给客户端对象承担然后再将实例化之后的对象转给策略模式的context对象
总结
今天太晚了太累了上午面试的东西下午花了很多时间去整理然后有准备了一下奖学金的申领的内容。已经到深夜了。又没有刷算法又没有完全看完不过太累了。明天早点起加油吧