`

面向对象的封装(Encapsulation)和分派(Delegation)

阅读更多
  工厂模式是我们最常用的模式了,著名的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)告诉我们,尽量将长的代码分派“切割”成每段,将每段再“封装”起来(减少段和段之间偶合联系性),这样,就会将风险分散,以后如果需要修改,只要更改每段,不会再发生牵一动百的事情。
分享到:
评论

相关推荐

    C#面向对象编程封装习题.pdf

    面向对象编程(Object-Oriented Programming,OOP)是现代软件开发的基础之一,C#语言作为现代面向对象编程语言之一,封装(Encapsulation)是面向对象编程的四大基本特征之一。封装是指将对象的状态和行为封装在一...

    第16章 LabVIEW中的面向对象编程,labview面向对象的框架,LabView

    5. LabVIEW中的面向对象框架:LabVIEW提供了强大的OOP工具,如类库(Class Library)、事件结构(Event Structure)和对象引用(Object Reference)。类库可以组织和管理类,事件结构处理对象间的通信,对象引用则...

    面向对象(基础)特征一:封装性(encapsulation)

    面向对象(基础)特征一:封装性(encapsulation) 封装性是面向对象编程的一种基本特征,它将对象的状态和行为封装在一起,使得对象的内部状态和实现细节对外部不可见,从而提高了代码的可维护性、可重用性和可...

    面向对象(基础)特征一:封装性(encapsulation)-md文件

    面向对象(基础)特征一:封装性(encapsulation)--md文件

    《面向对象的程序设计》期末试卷(A)答案.pdf

    - 类和对象 - 继承 - 封装(访问修饰符) - 抽象类和接口 - 异常处理 - 事件和委托 9. 面向对象的程序设计实践 在实际编程实践中,开发人员需要遵循一定的最佳实践,例如: - 使用设计模式来解决常见的设计...

    c++面向对象编程实例大全

    首先,C++的面向对象特性主要包括类(Class)、对象(Object)、封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism)。类是面向对象编程的基础,它定义了一组数据(属性)和操作这些数据的方法(函数...

    大数据必学Java基础(三十九):面向对象三大特性之一封装(Encapsulation)

    在软件开发中,封装(Encapsulation)是面向对象编程的三大特性之一,指的是将对象的属性和方法封装在一起,使得外界无法直接访问对象的内部状态,而只能通过提供的方法来间接访问。这是一种非常重要的设计思想,...

    c++面向对象程序设计课后习题答案

    在C++中,面向对象的核心概念包括类(Class)、对象(Object)、继承(Inheritance)、多态(Polymorphism)和封装(Encapsulation)。以下是对这些概念的详细解释: 1. **类(Class)**:类是面向对象编程的基础,...

    面向对象分析与设计课程设计(餐厅点菜系统).pdf

    - 封装(Encapsulation):系统中的对象需要隐藏内部状态和实现细节,只通过公共接口与外界通信。 - 继承(Inheritance):在点菜系统中,可能有一个基类代表菜品,其他如特色菜、主菜等可以通过继承来复用菜品的...

    《Java面向对象程序设计(第2版)》课件

    - 封装(Encapsulation):封装是隐藏对象的内部细节,只对外提供公共接口来访问。Java通过访问修饰符(如public, private, protected)实现封装。 - 继承(Inheritance):继承允许一个类(子类)继承另一个类...

    面向对象程序设计答案-马石安

    首先,面向对象程序设计(Object-Oriented Programming,简称OOP)的核心概念包括类(Class)、对象(Object)、继承(Inheritance)、封装(Encapsulation)、多态(Polymorphism)和抽象(Abstraction)。...

    面向对象系统分析与设计

    8. **分析与设计过程**:面向对象分析(OOA)涉及识别系统的需求,而面向对象设计(OOD)则将这些需求转化为具体的类和对象结构。两者都强调用例驱动和迭代方法。 9. **案例研究**:课程可能包括实际的项目案例,如...

    Java面向对象程序设计(第二版)

    4. 类和对象 类是Java中定义对象的模板或蓝图。对象是根据类定义创建的实例。一个类可以定义属性和方法。属性是对象的状态,而方法是作用于这些属性的行为。创建对象时,会为对象的状态(属性值)分配内存,而类中...

    用C实现面向对象,帮你理解面向对象

    4. **封装(Encapsulation)**:封装是指将数据(属性)和操作这些数据的方法(函数)绑定在一起,并对外部隐藏内部实现细节。在C语言中,可以通过使用结构体和函数指针的组合来实现封装。 ```c typedef struct { ...

    道法自然-面向对象实践指南.pdf

    1. **面向对象的基本概念**:面向对象编程的核心概念包括类(Class)、对象(Object)、继承(Inheritance)、封装(Encapsulation)和多态(Polymorphism)。类是创建对象的模板,定义了一组属性(数据成员)和方法...

    面向对象程序设计PPT

    - **封装(Encapsulation)**:封装是将数据和操作这些数据的方法绑定在一起,隐藏内部实现细节,只对外提供公共接口。这增强了安全性,防止了外部代码对对象内部状态的直接访问。 - **继承(Inheritance)**:继承...

    深入PHP:面向对象、模式与实践(第三版)高清PDF和完整源码.zip

    在PHP中,面向对象的特性包括类(Class)、对象(Object)、继承(Inheritance)、封装(Encapsulation)和多态(Polymorphism)。理解这些概念是成为熟练的PHP开发者的基础。例如,类是创建对象的蓝图,它定义了...

    面向对象设计UML实践课后答案

    UML(Unified Modeling Language)是面向对象设计的一种标准化建模语言,用于可视化、规格说明、构建和文档化软件系统。本实践课程主要涉及如何使用UML进行有效的面向对象设计。 UML提供了多种图表类型,如用例图、...

    面向对象程序设计与VC++实践

    面向对象程序设计是一种重要的软件开发方法,它基于对象的概念,将数据和操作这些数据的方法封装在一起,形成独立的、可重用的实体。VC++,全称Visual C++,是微软公司开发的一种集成开发环境,它支持C++编程语言,...

Global site tag (gtag.js) - Google Analytics