设计模式之工厂模式
来源:互联网 发布:山寨苹果数据线 知乎 编辑:程序博客网 时间:2024/06/05 23:44
1、目的
写这些内容只是为了自己加深印象,方便解决问题。在遇到问题的时候能多几种思路。文章中加入的自己的理解可能有不到位的地方,或者错误的地方。当你读到这篇博客的时候希望能自己亲自实践一下。因为能力有限只写一下自己的笔记,方便以后查阅。
2、自己对设计模式了解还不够深入,需要更加深入的学习。对于复杂的类可以使用工厂模式,但是对于只需要new就能创建的类,直接new出来就好。工厂模适合创建复杂的类,让子类自己决定创建哪一种工厂。
3、工厂模式第一步:
3.1创建一个工厂接口
public interface AnimailFactory { void call();}
3.2创建具体的子类实现工厂里的方法
public class Cat implements AnimailFactory { @Override public void call() { Log.e("factory=========","这是工厂里的一只猫"); }}public class Dog implements AnimailFactory { @Override public void call() { Log.e("factory=========","这是工厂里的一条狗"); }}public class Fish implements AnimailFactory { @Override public void call() { Log.e("factory=========","这是工厂里的一条鱼"); }}
3.3创建工厂的实现类
public class Factory { public AnimailFactory createAnimal(String type){ if (type==null){ Log.e("factory======","没有动物要养"); return null; } if (type.equals("dog")){ return new Dog(); }else if(type.equals("cat")){ return new Cat(); }else if (type.equals("fish")){ return new Fish(); } return null; }}
3.4通过传递信息获取实体类的对象
Factory fac = new Factory(); AnimailFactory dog = fac.createAnimal("dog"); dog.call(); AnimailFactory cat = fac.createAnimal("cat"); cat.call(); AnimailFactory fish = fac.createAnimal("fish"); fish.call();
3.5验证工厂类是否创建了子类
12-01 14:24:35.736 6714-6714/com.test.factory E/factory=========: 这是工厂里的一条狗12-01 14:24:35.736 6714-6714/com.test.factory E/factory=========: 这是工厂里的一只猫12-01 14:24:35.736 6714-6714/com.test.factory E/factory=========: 这是工厂里的一条鱼
阅读全文
0 0
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之---工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之-工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之 ------工厂模式
- 设计模式之工厂模式
- Python: 在Unicode和普通字符串之间转换
- 计算1*2*3+3*4*5+...+99*100*101
- 生成缩略图 S3 & Lambda
- 51nod 1366 贫富差距 (并查集+最短路径)
- 元素li已经无法赋value值了(js&jquery报错:无效的属性值)
- 设计模式之工厂模式
- R 包安装遇到一些问题
- 公众号从菜鸟到高手的进化:微信公众号自定义菜单
- mybatis遇到的问题
- GitHub HelloWorld 教程
- 模块系统规范
- 如何评价刘同新书《我在未来等你》?
- JVM调优总结 + jstat 分析
- 抽象工厂模式