详解。。。设计模式2——工厂。。。studying
来源:互联网 发布:dnf趣味数据网址 编辑:程序博客网 时间:2024/05/20 01:10
设计模式2——工厂
★ 场景和问题
Java程序开发讲究面向接口编程,隐藏具体的实现类,可是如何得到接口呢?
工厂类的命名规范:***Factory
单例工厂方法的命名规范:getInstance()
工厂的本质是“选择实现”
工厂、接口和实现类之间的技术边界:工厂只负责选择实现,实现类才做真正的实现,
而接口是限定到底实现什么东西和返回什么东西,三者之间分工明确、各负其责。
java代码实现:
package cn.hncu.patterns.exercise.factory;import cn.hncu.patterns.exercise.factory.inter.A;import cn.hncu.patterns.exercise.factory.model.AFactory;/* * 工厂实现测试: * 验证工厂方法是选择实现, * 接口指定功能, * 实现类实现功能, * 工厂选择实现类, * 为客户提供不同的功能, * 也就是返回不同的接口。 * 目的: * 工厂选择功能。 * 实现类隐藏。 * 接口给客户。 */public class Client {public static void main(String[] args) {A a1 = AFactory.createA1();A a2 = AFactory.createA2();A a3 = AFactory.createA3();a1.t1();// 输出1111111111111a2.t1();// 输出2222222222222a3.t1();// 输出33333}}
package cn.hncu.patterns.exercise.factory.model;import cn.hncu.patterns.exercise.factory.imp.ImpA1;import cn.hncu.patterns.exercise.factory.imp.ImpA2;import cn.hncu.patterns.exercise.factory.imp.ImpA3;import cn.hncu.patterns.exercise.factory.inter.A;public class AFactory {public AFactory() {}/* * 使用类反射, * 就可以把下列三个函数合并成一个函数 */public static A createA1() {A a = new ImpA1();return a;}public static A createA2() {A a = new ImpA2();return a;}public static A createA3() {A a = new ImpA3();return a;}}
package cn.hncu.patterns.exercise.factory.inter;public interface A {public abstract void t1();}
package cn.hncu.patterns.exercise.factory.imp;import cn.hncu.patterns.exercise.factory.inter.A;public class ImpA1 implements A {@Overridepublic void t1() {System.out.println("1111111111111");}}
package cn.hncu.patterns.exercise.factory.imp;import cn.hncu.patterns.exercise.factory.inter.A;public class ImpA2 implements A {@Overridepublic void t1() {System.out.println("2222222222222");}}
package cn.hncu.patterns.exercise.factory.imp;import cn.hncu.patterns.exercise.factory.inter.A;public class ImpA3 implements A {@Overridepublic void t1() {System.out.println("33333");}}
0 0
- 详解。。。设计模式2——工厂。。。studying
- 详解。。。设计模式3——值对象。。。studying
- 详解。。设计模式5——DAO。。studying
- C++工厂模式详解——设计模式(2)
- 详略。。。设计模式4——装饰模式。。。studying
- 详略。。设计模式1——单例。。。。studying
- 详略。。设计模式2——单例变形(多例).。。。studying
- 设计模式——工厂方法模式详解
- 设计模式——抽象工厂模式详解
- 工厂模式详解——《参考Head First设计模式》
- 详解设计模式——工厂方法模式
- 详解设计模式——抽象工厂模式
- 设计模式详解——工厂模式(一)
- 设计模式详解——工厂模式(二)
- 设计模式详解——工厂模式(三)
- 工厂设计模式详解
- 设计模式—工厂模式
- 设计模式—工厂模式
- mysql 查找不存在的id
- 使用ssh公钥实现面密码登录:RSA公钥
- CSS中的盒模型
- 抓取京东评论数据
- ICA(1)
- 详解。。。设计模式2——工厂。。。studying
- 定时器&(对话框)
- 【LeetCode】191_Number of 1 Bits
- clone(),fork()与vfork()的区别
- maven学习
- 指针和const
- 什么是IP地址、子网掩码、路由和网关
- Shell脚本Demo
- 云计算的三种服务模式:IaaS,PaaS和SaaS