002.设计模式之工厂模式
来源:互联网 发布:js修改微信分享的内容 编辑:程序博客网 时间:2024/06/02 06:29
工厂模式:
概念:定义一个用于创建对象的接口,让子类决定实现哪一个类,工厂方法让创建实例延迟到其子类
要素:
1.工厂接口,工厂接口是工厂方法模式的核心,与调用者直接交互用来提供产品。
2.工厂实现,工厂实现决定如何实例化产品。
3.产品接口,产品接口的主要目的是定义产品的规范。
4.产品实现,实现产品的具体类,决定了产品在客户端中的具体行为。
优点:
1.使代码结构清晰,有效地封装变化。
2.对调用者屏蔽具体的产品类。
3.降低耦合度。
使用场景:
1.作为一种创建类模式,任何需要生成复杂对象的地方,都可以使用工厂模式。
2.当系统需要良好的拓展性
类结构:
工厂接口package com.shenghuoquaner.design.Factory;public interface AnimalMother { public Animal giveBirth();}
工厂实现类package com.shenghuoquaner.design.Factory;public class CatMother implements AnimalMother { @Override public Animal giveBirth() { Animal cat = new Cat(); cat.description(); return cat; }}
工厂实现类package com.shenghuoquaner.design.Factory;public class DogMother implements AnimalMother { @Override public Animal giveBirth() { Animal dog = new Dog(); dog.description(); return dog; }}
实例接口package com.shenghuoquaner.design.Factory;public interface Animal { void description();}
实例实现类package com.shenghuoquaner.design.Factory;public class Dog implements Animal { @Override public void description() { System.out.println("小狗狗出生了!"); }}
实例实现类package com.shenghuoquaner.design.Factory;public class Cat implements Animal { @Override public void description() { System.out.println("小猫猫出生了!"); }}
测试类package com.shenghuoquaner.design.Factory;public class Test { public static void main(String[] args) { AnimalMother dm = new DogMother(); dm.giveBirth(); AnimalMother cm = new CatMother(); cm.giveBirth(); }}
1 0
- 002.设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之---工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之-工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之 ------工厂模式
- 第4章 Android dex文件格式 第一节
- sshd 无法启用的问题 Could not load host key: /etc/ssh/ssh_host_rsa_key Could not load host key: /etc/ssh/ss
- android图片保存
- 内联函数和宏定义的区别
- [WPF初学]基于WPF框架的MVVM模式简介
- 002.设计模式之工厂模式
- 创意的市场因素分析
- BW InfoCube and Extended Star Schema
- 想使用 MongoDB ,你应该了解这8个方面!
- Java多线程之Executor框架(1)
- struts2 类型转换器笔记
- JPEG转RGB Bmp(IJG库 jpeg.lib)
- IOS学习笔记
- JetBrains Toolbox推出全新产品订阅授权模式