抽象工厂
来源:互联网 发布:网络推手阿建排第一 编辑:程序博客网 时间:2024/06/01 08:51
概念
定义一个接口,用来创建相关或依赖的对象家族,而不需要指明具体类。
实例
IPhoneStore、WPhoneStore实现同一接口PhoneStore
public interface PhoneStore { public abstract Phone orderPhone(); public abstract PhoneFilm orderPhoneFilm();}public class IPhoneStore implements PhoneStore { public Phone orderPhone() { return new IPhone(); } public PhoneFilm orderPhoneFilm() { return new IPhoneFilm(); }}public class WPhoneStore implements PhoneStore { public Phone orderPhone() { return new WPhone(); } public PhoneFilm orderPhoneFilm() { return new WPhoneFilm(); }}
IPhone、WPhone继承Phone抽象类
public abstract class Phone { private String name; Phone(String name) { this.name = name; } public void printInfo() { System.out.println(name); }}public class IPhone extends Phone { IPhone() { super("iphone"); }}public class WPhone extends Phone { WPhone() { super("WindowsPhone"); }}
IPoneFilm、WPoneFilm继承PhoneFile抽象类
public abstract class PhoneFilm { private String name; PhoneFilm(String name) { this.name = name; } public void printInfo() { System.out.println(name); }}public class IPhoneFilm extends PhoneFilm { IPhoneFilm() { super("iphone 手机膜"); }}public class WPhoneFilm extends PhoneFilm { WPhoneFilm() { super("windows phone 手机膜"); }}
测试代码
public class PhoneTest { public static void buyPhone(PhoneStore phoneStore) { System.out.println("买手机送手机膜"); Phone phone=phoneStore.orderPhone(); PhoneFilm phoneFilm=phoneStore.orderPhoneFilm(); phone.printInfo(); phoneFilm.printInfo(); } public static void main(String[] args) { buyPhone(new IPhoneStore()); buyPhone(new WPhoneStore()); }}
测试结果
买手机送手机膜
iphone
iphone 手机膜
买手机送手机膜
WindowsPhone
windows phone 手机膜
0 0
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- java String与int转换
- SpringMVC环境搭建
- javascript之var关键字
- BestCoder Round #52 (div.2) Victor and Machine
- HDU 1034.Candy Sharing Game【又是模拟】【8月22】
- 抽象工厂
- 习惯性的对自己没信心,其实没想到自己已经变强大了。
- TCP的发送系列 — 发送缓存的管理(一)
- bash变量-位置参数与预定义变量
- hdu1532网络流
- sturt1 submit 提交在后台回去不到表单的值,是否加了disabled="true "属性?
- 策略(strategy)模式
- Matlab之视角旋转函数
- POJ3104--Drying