php设计模式 策略模式。

来源:互联网 发布:电脑办公软件自学 编辑:程序博客网 时间:2024/06/08 07:00

策略模式是对象的行为模式,用意是对一组算法的封装。动态的选择需要的算法并使用。

策略模式指的是程序中涉及决策控制的一种模式。策略模式功能非常强大,因为这个设计模式本身的核心思想就是面向对象编程的多形性思想。

策略模式的三个角色:

1.抽象策略角色

2.具体策略角色

3.环境角色(对抽象策略角色的引用)

实现步骤:

1.定义抽象角色类(定义好各个实现的共同抽象方法)

2.定义具体策略类(具体实现父类的共同方法)

3.定义环境角色类(私有化申明抽象角色变量,重载构造方法,执行抽象方法)

策略模式是改变类继承的笨拙的一种改写方式。

比如说。我们这边针对学校的课程 搞一个针对这个问题的类

课程 首先他有一个科目,比如 文科。理科等,有多少个分类就有多少个 class文件。继承与实现基类

如果说每个 分类下有多个课程。比如 语文。数学等等。多少个课程体系就有多少个 class文件。进行继承与科目。

也不多说。就拿语文数学,文科,理科 做列子。

          基类

 文科     理科

文科语文,文科数学   理科语文,理科数学

都是从小到下的继承关系。

比如说 我这边添加一个科目。需求添加3个文件。科目class.对应的科目语文数学。

比如说 我这边添加一个课程。需求添加2个文件。对应的科目下面也都需要添加对应科目的新增课程。

如果这么进行梳理就会发现类继承的笨拙性。后期的维护性会变的非常差

如果我们这边用策略模式是怎么一个样子呢?

          基类 abstrauct  科目的所有规则

 文科     理科

从上到下继承

课程类 abstrauct 课程类的所有规则

语文                          数学

从上到下继承

那么这样就简单多了。

在操作过程中采用继承,组合的方式 重新梳理

比如说 我这边添加一个科目。需求添加1个文件。科目class。

比如说 我这边添加一个课程。需求添加1个文件。新增课程class。


这样相比与单单进行继承是不是好了很多。后期的维护性会变的很简单

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孕期太胖了怎么办啊 人流后子宫复位不好怎么办 怀孕初期有盆腔积液怎么办 怀孕了有盆腔积液怎么办 多囊怀孕不想要怎么办 6个月婴儿大小眼怎么办 健身教练岁数大了以后怎么办 超变战陀玩具手柄坏了怎么办 飓风战魂三陀螺中轴坏了怎么办 怎么办晚安角和铁陀螺 白衣服染上荧光剂了怎么办 指尖陀螺不亮了怎么办 手指陀螺不转了怎么办 月经推迟私处还老是流水怎么办 苹果手机刷机后忘记id密码怎么办 锤基意外怀孕怎么办零6 职场遇到心机婊怎么办 高二会考没过怎么办 保险柜没电了打不开怎么办 保险柜没有电了打不开怎么办 小保险箱没电了怎么办 bim墙的颜色反了怎么办 眼睛大但是无神怎么办 吃了凉的胃难受怎么办 吃凉东西胃疼怎么办 游戏只有一个分辨率选项怎么办 玩游戏心态易崩怎么办 打游戏心态炸了怎么办 赛鸽比赛回来拉稀怎么办 鸽子拉竹节水便怎么办 新买的鸽子拉稀怎么办 信鸽羽毛上长了虫子怎么办 羊肉煮熟了太硬怎么办 切菜不小心切到手指怎么办 打荷盘子端错了怎么办 学厨师不会翻锅怎么办? 在饭店上班不给工资怎么办 炒菜的左手拿不起锅怎么办?? 厨师想尽快上手炒菜怎么办? 空调吹的肩膀痛怎么办 学厨师翻锅不会怎么办