工厂模式是我们最常用的模式了,著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。
为什么工厂模式是如此常用?因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑实用工厂模式,虽然这样做,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量。
我们以类Sample为例, 如果我们要创建Sample的实例对象:
Sample sample=new Sample();
可是,实际情况是,通常我们都要在创建sample实例时做点初始化的工作,比如赋值 查询数据库等。
首先,我们想到的是,可以使用Sample的构造函数,这样生成实例就写成:
Sample sample=new Sample(参数);
但是,如果创建sample实例时所做的初始化工作不是象赋值这样简单的事,可能是很长一段代码,如果也写入构造函数中,那你的代码很难看了(就需要Refactor重整)。
为什么说代码很难看,初学者可能没有这种感觉,我们分析如下,初始化工作如果是很长一段代码,说明要做的工作很多,将很多工作装入一个方法中,相当于将很多鸡蛋放在一个篮子里,是很危险的,这也是有背于Java面向对象的原则,面向对象的封装(Encapsulation)和分派(Delegation)告诉我们,尽量将长的代码分派“切割”成每段,将每段再“封装”起来(减少段和段之间偶合联系性),这样,就会将风险分散,以后如果需要修改,只要更改每段,不会再发生牵一动百的事情。
分享到:
相关推荐
面向对象编程(Object-Oriented Programming,OOP)是现代软件开发的基础之一,C#语言作为现代面向对象编程语言之一,封装(Encapsulation)是面向对象编程的四大基本特征之一。封装是指将对象的状态和行为封装在一...
5. LabVIEW中的面向对象框架:LabVIEW提供了强大的OOP工具,如类库(Class Library)、事件结构(Event Structure)和对象引用(Object Reference)。类库可以组织和管理类,事件结构处理对象间的通信,对象引用则...
面向对象(基础)特征一:封装性(encapsulation) 封装性是面向对象编程的一种基本特征,它将对象的状态和行为封装在一起,使得对象的内部状态和实现细节对外部不可见,从而提高了代码的可维护性、可重用性和可...
面向对象(基础)特征一:封装性(encapsulation)--md文件
- 类和对象 - 继承 - 封装(访问修饰符) - 抽象类和接口 - 异常处理 - 事件和委托 9. 面向对象的程序设计实践 在实际编程实践中,开发人员需要遵循一定的最佳实践,例如: - 使用设计模式来解决常见的设计...
首先,C++的面向对象特性主要包括类(Class)、对象(Object)、封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism)。类是面向对象编程的基础,它定义了一组数据(属性)和操作这些数据的方法(函数...
在软件开发中,封装(Encapsulation)是面向对象编程的三大特性之一,指的是将对象的属性和方法封装在一起,使得外界无法直接访问对象的内部状态,而只能通过提供的方法来间接访问。这是一种非常重要的设计思想,...
在C++中,面向对象的核心概念包括类(Class)、对象(Object)、继承(Inheritance)、多态(Polymorphism)和封装(Encapsulation)。以下是对这些概念的详细解释: 1. **类(Class)**:类是面向对象编程的基础,...
- 封装(Encapsulation):系统中的对象需要隐藏内部状态和实现细节,只通过公共接口与外界通信。 - 继承(Inheritance):在点菜系统中,可能有一个基类代表菜品,其他如特色菜、主菜等可以通过继承来复用菜品的...
- 封装(Encapsulation):封装是隐藏对象的内部细节,只对外提供公共接口来访问。Java通过访问修饰符(如public, private, protected)实现封装。 - 继承(Inheritance):继承允许一个类(子类)继承另一个类...
首先,面向对象程序设计(Object-Oriented Programming,简称OOP)的核心概念包括类(Class)、对象(Object)、继承(Inheritance)、封装(Encapsulation)、多态(Polymorphism)和抽象(Abstraction)。...
8. **分析与设计过程**:面向对象分析(OOA)涉及识别系统的需求,而面向对象设计(OOD)则将这些需求转化为具体的类和对象结构。两者都强调用例驱动和迭代方法。 9. **案例研究**:课程可能包括实际的项目案例,如...
4. 类和对象 类是Java中定义对象的模板或蓝图。对象是根据类定义创建的实例。一个类可以定义属性和方法。属性是对象的状态,而方法是作用于这些属性的行为。创建对象时,会为对象的状态(属性值)分配内存,而类中...
4. **封装(Encapsulation)**:封装是指将数据(属性)和操作这些数据的方法(函数)绑定在一起,并对外部隐藏内部实现细节。在C语言中,可以通过使用结构体和函数指针的组合来实现封装。 ```c typedef struct { ...
1. **面向对象的基本概念**:面向对象编程的核心概念包括类(Class)、对象(Object)、继承(Inheritance)、封装(Encapsulation)和多态(Polymorphism)。类是创建对象的模板,定义了一组属性(数据成员)和方法...
- **封装(Encapsulation)**:封装是将数据和操作这些数据的方法绑定在一起,隐藏内部实现细节,只对外提供公共接口。这增强了安全性,防止了外部代码对对象内部状态的直接访问。 - **继承(Inheritance)**:继承...
在PHP中,面向对象的特性包括类(Class)、对象(Object)、继承(Inheritance)、封装(Encapsulation)和多态(Polymorphism)。理解这些概念是成为熟练的PHP开发者的基础。例如,类是创建对象的蓝图,它定义了...
UML(Unified Modeling Language)是面向对象设计的一种标准化建模语言,用于可视化、规格说明、构建和文档化软件系统。本实践课程主要涉及如何使用UML进行有效的面向对象设计。 UML提供了多种图表类型,如用例图、...
面向对象程序设计是一种重要的软件开发方法,它基于对象的概念,将数据和操作这些数据的方法封装在一起,形成独立的、可重用的实体。VC++,全称Visual C++,是微软公司开发的一种集成开发环境,它支持C++编程语言,...