java面向对象与设计模式(三)

第四式 工厂方法模式
定义:定义一个用于创建对象的接口,让子类决定实例化那一个类,对象工厂模式使一个类的实例化延迟到子类。
优点:可以在不知具体实现的情况下编程;更容易扩展对象的新版本;连接平行的类层次。
缺点:具体产品对象和工厂方法的耦合性。
本质:延迟到子类的选择实现。

public interface product {

    public void createProduct();

}

public class concreteProduct implements product {

    @Override
    public void createProduct() {
        // TODO Auto-generated method stub
        System.out.println("create product");

    }

}

public abstract class factory {

    protected abstract product factoryMethod();

    public void someOptions() {

        product prod = factoryMethod();
        prod.createProduct();
    }

}

public class concreteFactory extends factory {

    @Override
    protected product factoryMethod() {
        // TODO Auto-generated method stub
        return new concreteProduct();
    }

}

public class user {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        factory fctry = new concreteFactory();
        fctry.someOptions();

    }

}

工厂方法模式体现了IoC/DI的思想,IoC/DI在实现上本身没有什么难度,只是提供了一种思想,达到了应用程序和外部资源的一种松耦的目的。

时间: 2024-10-07 01:24:39

java面向对象与设计模式(三)的相关文章

【Java面向对象基础(三)】面向对象思想

[喵"的Android之路][基础篇(三)][Java面向对象基础]面向对象思想 1 面向对象的WWH 1.1 What--什么是面向对象 首先,要理解“对象”.在Thinking in Java中提到“Everything is an object”,即万物皆对象.这里的“对象”指的是任何实体或者任何可以当作实体看待的“虚幻的事物”.比如现实中的人(男人.女人.老人.小孩而...).动物(大象.狮子.猴子...).桌子.凳子.汽车.ATM机等等,也可以使看不见摸不着的空气(氧气.二氧化碳.氮气

java面向对象与设计模式(一)

设计原则:SOLID 可以说,五个设计原则各司其职.单一职责原则(S):用于类的设计开闭原则(O):总的指导思想里氏替换原则(L):用于指导类继承的设计接口隔离原则(I):用于指导接口的设计依赖翻转原则(D):用于指导如何抽象 类之间的关系:继承=实现>组合>聚合>关联>依赖 UML表现:继承:带三角箭头的实线,箭头指向父类 实现:带三角箭头的虚线,箭头指向接口 组合:带实心菱形的实线,菱形指向整体 聚合:带空心菱形的实线,菱形指向整体 关联:带普通箭头的实线,指向被拥有者 依赖:

java面向对象与设计模式(四)

第五式 抽象工厂模式 定义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类.(创建的对象之间有约束) 抽象工厂模式的本质:选择产品簇的实现 优点:分离接口和产品簇,使得切换产品簇变得容易 缺点:不太容易扩展新的产品,容易造成类层次复杂 工厂方法模式一般用在产品之间没有联系的单个产品,而抽象方法模式一般用在产品之间有联系的时候.

java面向对象与设计模式(二)

第一式 外观模式定义:为子系统的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这一接口使得这一子系统更加容易使用.优点:松散耦合 简单易用 更好地划分访问的层次缺点:不应过度使用本质:封装交互 简单调用 public interface testA { public void test(); } public interface testB { public void test(); } public interface testC { public void test(); } pu

第8篇-JAVA面向对象-设计模式Ⅳ

第8篇-JAVA面向对象-设计模式Ⅳ 每篇一句 : 想象是程序的创作之源 初学心得 : 平静的海洋练不出熟练的水手 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-04-11| JAVA面向对象 Ⅳ] JAVA设计模式 什么是JAVA设计模式以及作用? 设计模式是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结 使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性,本篇将介绍10种JAVA常用设计模式 1.JAVA 设计模式 - 单例设计模式 单例模

Java学习总结(三)——面向对象(上)

Java学习总结(三) -面向对象(上) 一.面向对象的概念及思考方式 面向对象的理解:是一种编程思想,他将对象作为解决问题的基本元素,利用对象与对象之间的相互作用来设计程序. 2.面向对象的思考方式:(1)首先确定问题域中的对象 (2)确定对象的特征与功能 (3)了解对象与对象之间的关系 例:设计一个五子棋游戏的对象:·黑白双方对象     ·绘制棋盘     ·输赢规则 二.类与对象 1.对象:用来描述客观事物的一个实体,由一组属性和行为构成. 2.类:(1)是一个模板,他描述一类对象的行为

JAVA学习--面向对象的特征三:多态性

* 面向对象的特征三:多态性  * 1.多态性指的是什么?多态性,可以理解为一个事物的多种表型形态.  *   1)方法的重载与重写  2)子类对象的多态性  *  * 2.子类对象的多态性使用的前提:①要有类的继承②要有子类对父类方法的重写  *  * 3.程序运行分为编译状态和运行状态.  *   对于多态性来说,编译时,"看左边",将此引用变量理解为父类的类型  *   运行时,"看右边",关注于真正对象的实体:子类的对象.那么执行的方法就是子类重写的.  *

java面向对象的三种特征简述(随笔)

刚才有个刚学java的小菜问我面向对象的三种特性,我给他简单的讲了讲,以下是我十年来对java面向对象特性的简单阐述: 封装 封装就是把一个事物的属性和行为抽象出来,写到一个类里边,也就是按照事物的特性归类.也就是抽象事物的公共属性和方法. 继承 和咱们人类的继承差不多,就是老子有的东西儿子也有,只要儿子从老子那继承一下就OK了. 多态 就是同一个类里可以有相同的方法,但相同方法的参数是不同的.

java面向对象编程(三)--类变量、类方法

1.什么是类变量? 类变量是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量. 如何定义类变量? 定义语法:     访问修饰符 static 数据类型 变量名; 如何访问类变量?     类名.类变量名 或者 对象名.类变量名 案例:有一群小孩玩堆雪人,不时有新的小朋友加入,请问如何知道现在共有多少人在玩?请使用面向对象的思想,编写程序解决. public class Demo113{ public static