iOS

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

1.设计原则####

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

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

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

2.个人愚见###

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

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

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

图片1

3.Strategy Pattern结构

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

4.Strategy Pattern优缺点###

缺点####

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

优点####

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

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

演示代码 希望多多指教

原文地址:https://www.cnblogs.com/R0SS/p/5362509.html