策略模式是否是面向对象中多态的表现?

roydux 2007-02-03 02:46:49
我感觉就是多态,大家有什么不同看法吗?
...全文
866 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
stoneyrh 2008-10-27
  • 打赏
  • 举报
回复
从实现上看,基本上是这样,但是你不能这样想
设计模式之间的差别往往是比较细微的,需要从思想层面(模式的意图)来理解和区分
gongjian001 2008-10-02
  • 打赏
  • 举报
回复
设计模式基本上都用到了多态
UltraBejing 2008-04-30
  • 打赏
  • 举报
回复
接分先!
gzl 2007-08-07
  • 打赏
  • 举报
回复
我感觉不适,应该是一组行为的多态。
OO本身就具备多态,但应该算作单一或比较底层的多态。
这些是相对复杂的领域行为/功能来看的。
femalelover 2007-05-10
  • 打赏
  • 举报
回复
设计模式中使用了超类型的基本都可以看作多态。
--------
啥类型是超类型
uoyevoli 2007-04-26
  • 打赏
  • 举报
回复
楼主的比较类似于:

写文章时的“总-分-总”结构是否是多音字现象呢?
gudyn 2007-04-18
  • 打赏
  • 举报
回复
taodm((不能收CSDN社区短信息,请莫浪费精力))

这个根本不是同一个层次的东西,比较没有太大意义

===========================================

比较根本没有意义
foochow 2007-02-10
  • 打赏
  • 举报
回复
使用策略模式可以处理不稳定的经常变化的需求,对于那些需要经常变化的内容,可以把这部分限制在策略里面,以避免对系统进行到处修改。。
ACE里面用了大量的策略模式,楼主可以去看看。。。
heguodong 2007-02-10
  • 打赏
  • 举报
回复
策略模式强调的是做同一件事情的不同方法,这些方法不能重复,也就是正交
多态只不过是一种语言机智,有的不支持多态的语言一样也要实现策略
策略处于设计层次,多态处于语言的层次
飞驰的青蛙 2007-02-10
  • 打赏
  • 举报
回复
我没感觉
wuxinbiaobai 2007-02-05
  • 打赏
  • 举报
回复
设计模式中包含有大量的多态应用,策略模式是其中之一。
taodm 2007-02-05
  • 打赏
  • 举报
回复
这个根本不是同一个层次的东西,比较没有太大意义
iambic 2007-02-04
  • 打赏
  • 举报
回复
设计模式中使用了超类型的基本都可以看作多态。
hangni 2007-02-04
  • 打赏
  • 举报
回复
策略实际上是一种设计Class的方法,将某种行为正交分解,形成不同的策略。比方说你要生成一个对象,就可以new一个对象或者clone一个对象,这就是策略,用策略模式可以设计出简单,易维护的Class,便于重用。
roydux 2007-02-04
  • 打赏
  • 举报
回复
hangni() ( ) 信誉:100 Blog 2007-2-4 10:26:23 得分: 0

说的有点严重了吧
libinzhangyuan 2007-02-03
  • 打赏
  • 举报
回复
基本如同楼主所述,不过话要反过来说才严谨:
策略模式会使用多态来实现。 或者说:多态的一种应用方式就是策略。
roydux 2007-02-03
  • 打赏
  • 举报
回复
那你感觉是什么?
www_adintr_com 2007-02-03
  • 打赏
  • 举报
回复
我感觉不是
Java面向对象 1 1 学习方法与要求 1 2 面向对象语言与面向过程语言的区别 7 3 面向对象?什么对象? 8 4 什么是类? 9 5 如何创建一个类Class? 10 6 如何使用类创建对象 10 7 引用与实例 11 8 实例属性与实例方法 11 9 实例属性与实例方法的使用 12 10 实例属性属于实例本身,与其他实例没有关系 13 11 javaBean编码规范 14 12 练习: 15 13 什么构造方法 16 14 构造方法的作用? 17 15 this关键字 17 16 方法调用时的引用传递还是值传递 19 17 面向对象语言的三大特性:封装,继承,多态 20 18 什么是封装?封装在哪? 20 18.1 封装的好处? 20 19 访问修饰符 20 20 面向对象的特性-继承 21 20.1 继承的关键字:extends 21 20.2 继承的语法格式: 21 20.3 继承的好处 21 20.4 Object类 21 20.5 继承是以什么方法实现的? 22 20.6 两个子类的实例,super会指向同一个父类实例吗? 23 20.7 在创建子类实例时,会创建父类实例,先创建哪个? 23 20.8 在子类构造方法如何调用父类构造方法? 23 20.9 super关键字 24 20.10 父类私有属性和私有方法可以继承吗? 24 20.11 在代码开发时先开发父类还是先开发子类? 24 20.12 父类是怎么来的? 25 20.13 父类放的所有子类的共性。子类可以有自己的特性。 26 20.14 方法重写(核心@Override) 28 20.15 练习: 29 20.16 作业题: 31 21 类与类之间的关系 32 22 GC:垃圾回收机制 33 23 Object类 33 23.1 常用方法:boolean equals(Object) 33 23.2 常用方法:String toString() 34 24 继承整理 34 25 面向对象三大特性:多态(核心) 34 25.1 多态的前提? 35 25.2 什么是多态? 35 25.3 父类的引用指向子类实例时,父类引用可以调用哪些方法? 35 26 引用类型的自动类型与强制类型转换 36 27 多态的应用 37 27.1 在使用多态时的一般格式: 37 27.2 练习:创建一个薪资专员(Persionnel),能计算员工工资,负责汇总当月所有员工的总工资数 38 27.3 练习:NewBasePlusSalesEmployee:针对BasePlusSalesEmployee有固定底薪的销售人员,有任务额度10K,满足任务额度正常发放,不满足任务额度发放底薪的80%,提成正常发放。 38 27.4 练习:设计一个形状类Shape 39 28 abstract关键字 41 28.1 abstract可以修饰的对象 41 28.2 抽象方法 41 28.3 抽象类 41 28.4 抽象方法与抽象类的关系 42 28.5 抽象方法与抽象类的使用 42 28.6 abstract的使用场合 42 29 练习:写一个“愤怒的小鸟”: 43 30 final关键字 43 30.1 final可以修饰到3个地方 43 30.2 引用类型加final修饰表示引用不可变 44 31 static关键字 44 31.1 static关键字可以修饰4个地方 44 31.2 静态属性 44 31.3 静态的与实例的 45 31.4 静态代码块 45 31.5 静态方法 45 31.6 静态方法是不能被继承 46 31.7 如何区分静态方法和实例方法的应用 46 31.8 静态导入(1.5新特性) 46 32 单例模式 47 32.1 饿汉模式 47 32.2 懒汉模式 47 33 接口(interface) 48 33.1 如何创建一个接口。 48 33.2 如何使用接口 48 33.3 如何使用类实现一个接口 49 33.4 接口的细节 49 34 接口的应用(面向对象分析) 49 34.1 案例(第一版,使用接口) 50 34.2 案例(第二版) 52 35面向对象设计原则 54 1、找出应用可能需求变化的代码,把它们独立出来,不要和那些需求不变化的的代码混在一起 54 2、针对接口编程,而不要针对实现类编程 54 3、多用组合,少用继承(包含实现) 54 4、为了交互对象之间的松耦合设计而努力 54 5、类应该对扩展开放,对修改关闭 54 6、依赖倒置,要依赖抽象,不要依赖具体类 54 36 练习:超市收银 54 37 练习:接口表示一种能力,也可以是一种规范 56 38 策略模式 57 38.1 动作冒险游戏 57 38.2 类图 57 38.3 编写使用武器行为接口和实现类 58 38.4 编写角色类和子类 58 38.5 测试类 58 38.6 动作冒险游戏补丁:增加新的角色和新的技能 59 38.7 编写新的打斗行为 59 38.8 编写新的治疗行为和实现类 59 38.9 修改角色父类 60 38.10 修改King类 60 39 披萨工厂 61 39.1 编写披萨父类 61 39.2 编写各种披萨 61 39.3 编写披萨商品类 62 39.4 简单工厂 63 39.5 使用简单工厂修改商店类 63 39.6 使用简单工厂将创建对象代码单独的封装的好处? 64 39.7 使用常量优化工厂类 64 39.8 测试类 65 40 枚举(enum) 65 40.1 创建一个枚举 66 40.2 为枚举创建实例 66 40.3 如何使用枚举的实例 66 40.4 使用枚举优化披萨工厂 67 40.5 枚举类型也可以有构造方法 68 40.6 枚举类型也可以有属性 68 40.7 枚举类型也支持带参数的构造方法。 68 40.8 枚举类型也可以有实例方法 68 40.9 枚举类型也可以支持抽象方法 69 41 内部类 70 41.1 内部类的分类 70 41.2 匿名内部类 70 41.3 成员内部类 71 41.4 静态内部类 72 41.5 局部内部类 73 42 作业 :商超案例,以OOP重构 73
个人整理,绝对全,以下是章节 1、Think in ActionScript 3.0Ⅰ 2、Think in ActionScript 3.0Ⅱ 3、Think in ActionScript 3.0Ⅲ 1.类的由来 1.1 C 语言的结构体 1.2 从结构体到类的演化(C —— C++) 2.封装(Encapsulation) 2.1 封装的概念 2.2 封装的好处 2.3 封装的目的 2.4 封装的技巧 3. 访问控制(Access Control) 4. 继承(Inheritance) 4.1 继承的概念 4.2 TestPerson.as —— 属性与方法的继承 4.3 TestExtends.as —— 继承的限制 4.4 内存分析 4.5 this 和 super 关键字 4.5.1 TestSuper.as —— this 和 super 以及 override 4.5.2 this 和 super 的内存分析 4.5.3 TestThis.as —— 用 this 区分局部变量与成员变量 4.6 初始化顺序 4.7 静态属性与方法 4.7.1 static的概念 4.7.2 TestStatic.as —— static 属于这个类,不属于该类实例 4.7.4 单例模式(Singleton Pattern) 5. 多态(Polymorphism) 5.1 多态的概念 5.2 多态存在的三个必要条件 5.3 TestPolymoph.as —— 多态的应用,体会多态带来的好处 5.4 TestPolymoph 内存分析 5.5 多态的好处 5.6 抽象类的概念 5.7 对象转型(Casting) 6. 接口(Interface) 6.1 接口的概念 6.2 依赖倒转原则(Dependence Inversion Principle) 6.3 实现接口的原则 6.4 TestInterFaceAccess.as —— 实现多个接口 6.5 接口用法总结 6.6 TestInterFacePoly.as —— 接口实现多态 6.7 策略模式(Strategy Pattern) 7.浅谈设计模式 8.面向对象程序设计 8.1 类和对象的概念 8.2 类之间的关系 8.3 面向对象程序设计(OOP) 8.4 出圈游戏 —— 面向过程 VS 面向对象 8.4.1 游戏规则 8.4.2 出圈游戏 —— 面向过程(cirgame/ CircleGame1.as) 8.4.3 出圈游戏 —— 面向对象(cirgame/ CircleGame2.as)

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧