zoukankan      html  css  js  c++  java
  • iOS

    OOP中三个原则:封装、继承、多态, 取经地址

    1.设计原则####

    • 找到应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起,利用封装。

    • 针对接口编程(针对超类设计接口,利用多态),而不是针对实现编程。

    • 多用组合,少用继承 —— 策略模式精髓。

    2.个人愚见###

    策略模式我理解应该是算法在源代码中就已经配对好了,例如针对多个输入框内容的判断,有邮箱的判断、手机号、姓名、年龄等不同种功能,这样情况一开始就会对每一个输入进行分配他的策略,然后在判断的时候根据他们自己策略算法执行。

    场景一:出游路线: 下拉菜单:简单粗暴游、没心没肺游、废寝忘食游三种选项,每种选项导致的界面效果、消费、天数都会不同。

    场景二:出游方式: 下拉菜单:骑自行车、坐汽车、坐火车、坐飞机四个选项,每种选项会出现,费用、消费、时间等不同。结构下图:

    图片1

    3.Strategy Pattern结构

    Context:环境类。
    Strategy:策略算法的基类,定义了所有支持的算法的公共接口。
    ConcreteStrategy:策略算法的基类派生出来的子类,用基类的接口实现了具体算法。

    4.Strategy Pattern优缺点###

    缺点####

    • ConcreteStrategy这样的子类多
    • 使用策略类必须要匹配数量、选择策略也需要用户自己选择
    • ConcreteStrategy继承自Strategy,自然多了很多没有用的方法创建没用的属性等,所以尽可能拆分的很细,功能越细导致类越多

    优点####

    • 算法独立出来,易于修改、拓展和增加新算法
    • 在Context中易于切换策略
    • 业务代码中少了很多if else逻辑判断

    5.针对出游方式场景的代码操练###

    演示代码 希望多多指教

  • 相关阅读:
    html_py
    PHP-FPM详解
    nginx 虚拟主机配置
    正确配置Nginx+PHP
    centos7安装Nginx
    如何让浏览器关闭后session失效
    微擎中消息响应回复 代码流程
    在vue组件库中不能使用v-for
    微信分享前面
    php接受axios数据
  • 原文地址:https://www.cnblogs.com/R0SS/p/5362509.html
Copyright © 2011-2022 走看看