工厂方法模式--简单的看法
来源:互联网 发布:lo娘为什么很讨厌知乎 编辑:程序博客网 时间:2024/05/22 01:43
工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪一个类,Factory Method使一个类的实例化延迟到了子类。 (完全符合开闭原则,解决了简单工厂方法模式添加新的类需要去修改原有的类)
结构与角色
Factory:抽象工厂。工厂方法模式的核心,声明工厂方法,返回一个产品。在任何情况下创建对象的工厂类必须继承当前的接口。
ConcreteFactory:具体工厂。实现抽象工厂接口的具体java类,实现了工厂方法,含有与应用密切相关的逻辑,有客户调用返回一个产品实例。
Product:抽象产品,定义产品接口。工厂方法模式所创建的对象的父类型,产品抽象共同拥有的接口。
ConcreteProduct:具体产品。实现抽象产品角色接口的类,工厂方法模式所创建的每一个对象都是某个具体产品角色的实例。
情景
家兴是一个非常喜欢打篮球游戏的屌丝,同时是一个IT男,最近公司让它开发一些投篮的一些类,但是要求是不能违背开闭原则,以后更改其它代码,因此家兴想到工厂方法模式;
打篮球触发行为动作,其实都是那一瞬间的肌肉记忆反应的,但是在游戏中,它是主要通过人为控制来实现,这样我们通过Mind接口来替代Factory,同时ShotTechnology接口代替Product。同时家兴如果再需要填加新的投篮技术,只需要通过继承MInd和ShotTechnology这两个接口来实现,就可以实现这一技术,只需要在客户端进行调用。如添加抛投等等
工厂方法模式xml图
//接口类public interface Mind { public ShotTechnology mind();}public interface ShotTechnology {}
//继承Mind接口public class DryPickMind implements Mind { public ShotTechnology mind(){ return new DryPick(); }}public class ScramMind implements Mind { public ShotTechnology mind(){ return new Scram(); }}
//继承ShotTechnology接口public class DryPick implements ShotTechnology{ public DryPick(){ System.out.println("我家兴要使用干拔,我看你们谁能拦我。"); }}public class Scram implements ShotTechnology{ public Scram(){ System.out.println("我家兴要使用急停,你还没反应,呵呵。"); }}
1 0
- 工厂方法模式--简单的看法
- 简单工厂模式--简单的看法
- 抽象工厂模式--简单的看法和使用
- 简单工厂模式和工厂方法模式的区别
- 简单工厂模式和工厂方法模式的区别
- 谈几点对抽象工厂模式的看法
- 简单工厂方法模式
- 简单工厂、工厂方法、抽象工厂模式
- 简单工厂、工厂方法、抽象工厂模式
- 工厂模式(简单工厂、工厂方法)
- 简单工厂|工厂方法|抽象工厂模式
- 简单工厂方法模式的代码下载
- 一个简单的工厂方法模式
- 工厂方法模式的简单使用
- 大话设计模式之简单工厂模式、抽象工厂模式及工厂方法模式的比较
- 大话设计模式之简单工厂模式、抽象工厂模式及工厂方法模式的比较
- 【设计模式之四:工厂模式对比】简单工厂、工厂方法和抽象工厂的区别
- 简单工厂和工厂方法模式的比较
- 医院挂号
- Android OkHttp完全解析 是时候来了解OkHttp了
- HDU 4815
- Java_IO_FileIntputStream_And_FileOutputStream
- hdoj 5835 Danganronpa 5842 Lweb and String
- 工厂方法模式--简单的看法
- Redis的Sorted Set的操作
- 日常潜水-20160814-JS
- 1893: 985的数学难题
- MySQL的保留关键字,使用时尽量避免
- LeetCode-convert-sorted-list-to-binary-search-tree
- Android开发之模仿城市导航列表实现导航列表悬停
- 读《C陷阱与缺陷》
- ARP中间人欺骗实现