【应用】
一个算法父类 : 怎么吃
很多算法子类 : 苹果怎么吃,葡萄怎么吃,香蕉怎么吃,榴莲怎么吃
一个上下文类 :小孩子/老人/大人/外国人 问xx怎么吃
调用时:
context1: 小孩子问苹果怎么吃? 苹果削皮吃
context2: 外国人问熊猫怎么吃? 结果:熊猫不能吃
【理解】
父子类结构,只是算法(方法)抽象为一个类
类似简单工厂,工厂类改为上下文类,工厂类的创建对象方法改为执行子类方法,不返回对象。
创建上下文时,传入要使用的子类对象,并设置个属性,持有,保证在调用时可以获取到。
可以和简单工厂结合使用,上下文类作为工厂类,创建上下文时只需要传入字符串即可在上下文中创建对应的算法子类。
创建上下文时使用字符串和算法子类对象的区别:
字符串可以保证外部调用时不用导入算法子类对象,只是个字符串/类型/数字/type等即可知道要使用那个算法子类,类似泛型;
网友评论