一个面向对象编程的程序员:
眼中的对象:面向对象编程是一种新的解决的问题的思想,也可以是说一种简化问题复杂的方法。
对象有自己的生命,例如在内容中它是真实存在的,也有生命结束的时候(被销毁);
大凡一个事物存在总有他的目的,所以对象的生产出来也有他的职责,为履行职责而生存,尽职后就可退休;
万物都是有联系的, 对象被抽象出来就是简化抽象现实中的事物,所以对象之间也会关系,比如单向或者双向的一对多,对象以不同的角色相互协作,完成任务。
事物总是在发展的,程序中的对象既然是对事物的抽象,当然对象也要体现这种发展进化的特征,对象之间的继承特性可以实现这种进化,进化出新的对象,自然会更改老对象的行为,这个行为被概括出一个概念--覆盖;这个替换原则非常之重要,她能够实现软件的重构复用,一些编程类指导书籍书上在介绍面向对象编程的时候总是说继承实现了软件的复用,其实这个是不准确的,我们要用一个对象时我们并不是都去继承他们,我们要用它直接把它作为bean给setter进来就行了,要说复用的话,那应当是一种深层次复用的意义:她能够轻易的实现软件的重构,更改需要更改的对象方法,而不必重新去构造一个新对象
关于Java EE :
java 的web编程核心其实就是在写继承servlet对象的service那个回调方法,当然自己重写覆盖的,这个模式体现了对象的复用与继承间关系。struts2跟struts1相比的话,struts2提供了更多的灵活性,她用对象工厂去生产要用到的对象组件,struts2中的新特性拦截器其实也没有什么新鲜,跟servlet规范中的filter实现思路是一脉相承的,用Gof‘设计模式的的话来描述应当是“职责链模式”;
在软件系统架构发展中,有一种思想在被研究,那就是软件组件化,当然也是一种复用的思想,为了简化重复的工作;java官方推出来的EJB就是这种思想,EJB的思路出发点很宏伟--面向分布式计算的组件技术,不过用起来有点复杂,我在做工程的时候用的是spring组件框架,毕竟一台server做提供web应用服务,没有分布式计算部署的问题;
spring核心思想是一个BeanFactory,获取组件的方法非常简单getBean,这个操作跟EJB同JNDI获取Bean思想上好像也没什么两样,都是从一个固定的地方根据一个ID取出需要的对象;
但是spring的依赖注入机制却是非常出色的,她能够自动注入所需要的bean,当然有了spring工厂容器,她可以在注入的时候做更多的事情,比较AOP编程,在java中AOP是通过动态代理来实现的,AOP释放编程的灵活行,更加展现了程序的活力;spring框架的核心是DI,但是还提供很多服务模块,比如她实现了一个MVC的web框架,为DAO持久化访问提供了模板类及事物代理等等
关于持久化到关系数据库的认识:
一说到持久化,那不得不提Hibernate(ORM-对象关系模型),面向企业级的计算一般都是以关系数据库为基础,所以也就是以E-R(实体-联系)为基础的编程模型,Hibernate就把它映射为ORM-对象关系模型,实体对应着程序设计中的模型,程序中的模型是抽象现实事物的,然而现实中的模型确不是一成不变的,她在不同的场景有不同的体现,而实体一旦在关系数据库的确定就不容易改变,所以以数据库schema计算模型为编程基础的企业应用程序不是最佳实践,再说数据库的伸缩性也是一个问题,这是我个人的一些观点,还没有验证。
刚接触Java的时候,虚拟机这个词曾经听到过许多次,但是就是不明白其中含义,所以专门花时间研究了下,我认为因为有了虚拟机,才实现java程序的平台无关性,虚拟机统一了Java程序的一个编程标准,比如字节基本长度单位,线程调度实现机制(Java虚拟机一般还是本地化到当地线程,以最大程度利用多核处理)等等。JavaSE比如java.lang.*包就是对Java虚拟机的实现提供一个标准,供程序员调用。
说到Java编程,那不得不说Java接口,有人说接口是一种高度抽象,其实这么说更加把这个概念给抽象了,也有人说接口定义了一种通信契约,这种说法没有错误,但是不怎么好理解,我觉得编写接口,就是在表达心中的编程思想,你不用实现它,这在做软件设计的时候非常有利的,而且当在依赖注入机制下可以达到高度的设计与实现的分离,面向接口编程容易维护,当然这个接口可以暴露出去供其他程序调用,也算一种封装机制;
分享到:
相关推荐
"C#面向对象编程小案例:模拟彩票选号器" 本资源详细介绍了C#面向对象编程的小案例,模拟彩票选号器的实现。该案例主要使用C#语言,通过面向对象编程的思想,实现了一个彩票选号器的模拟。 知识点1:System.Random...
根据提供的文件信息,关于《JAVA面向对象编程(孙卫琴)01》这本书,我们可以提炼出以下知识点: 首先,这本书是由孙卫琴编著的,专门针对JAVA面向对象编程的教程书籍。从标题我们可以知道,这本书是面向对象编程的...
1. Java面向对象编程:面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,依赖于对象的概念来设计应用程序。在面向对象编程中,数据和方法被封装成一个单一的单元,即对象。这些对象通过发送...
总之,《Delphi面向对象编程思想》是一本全面介绍如何在Delphi环境中运用面向对象编程技术的书籍,对于想要提升Delphi开发技能的程序员来说,是一份不可多得的学习资源。尽管已经绝版,但通过PDF文档,我们仍能领略...
然而,C语言本身并不直接支持面向对象编程(Object-Oriented Programming, OOP)特性,如类、继承、封装和多态等。为了在C语言中实现面向对象编程,开发者通常需要借助一些扩展或技巧。这个软件开发平台就是为了解决...
《麻省理工免费课程:C语言内存管理和C++面向对象编程》是一门非常有价值的课程,旨在帮助程序员深入理解C语言和C++的核心概念和技术。通过学习这门课程,学生不仅能够掌握有效的内存管理技巧,还能了解这两种语言的...
在ANSI-C面向对象编程中,我们探讨的是如何在C语言这一传统上被视为过程式编程的语言中实现面向对象编程的概念。C语言虽然不内置面向对象的特性,但通过一些技巧和设计模式,我们可以模拟出类似的功能。 1. 抽象...
本书全面深入地介绍了Delphi 5的集成开发环境、基本编程技巧、项目管理、调试器、Object Pascal语言、动态链接库、与C++共享代码、面向对象编程、VCL的结构、Open Tools API、编写自己的元件和包等内容。Delphi 5是...
面向对象编程(Object-Oriented Programming,简称OOP)是一种重要的编程范式,它通过将数据和操作数据的方法封装在对象中,实现了代码的模块化和重用性。本教程聚焦于C++和Java这两种广泛使用的OOP语言的比较,旨在...
总而言之,学习现代JavaScript面向对象编程,有助于开发者在认识这门语言演化的基础上,运用面向对象的设计和编程模式来构建更加健壮和可维护的JavaScript应用程序。同时,测试和调试是保证代码质量不可或缺的环节,...
面向对象编程的程序员则构造一个对象模型,将数据与方法组织在一起。 在生活中,我们可以举个例子来理解面向对象编程思想:如何把衣服放入衣柜?面向过程的做法是把过程分解成三个步骤:打开衣柜、把衣服放进去、把...
经典的面向对象入门书籍,很适合初级人员,同时,老手看了,亦有意想不到的收获
面向对象编程(Object-Oriented Programming,简称OOP)是现代计算机编程中的一种核心概念,它基于类和对象,强调数据封装、继承和多态等特性。C++是一种支持面向对象编程的强类型、编译型语言,由Bjarne Stroustrup...
HLA(High-Level Assembly)是一种高级汇编语言,它填补了这一空白,为汇编语言程序员提供了面向对象编程的能力。HLA 支持类的定义,类在HLA中不仅包含数据域,还可以定义过程、常量和宏等非数据元素,从而扩展了...
全书共分为两部分,第一部分介绍面向对象编程的基础和应用;第二部分说明了如何建立抽象的概念及其策略,并研究了C++对象模型。书中带有大量的代码实例,使读者不仅能够从理论上得以提高,而且还能够轻松地在实践中...
**设计模式**是面向对象编程中的一套通用解决方案,它们是经过验证的最佳实践,可以解决常见的设计问题。PHP 5支持多种设计模式,包括: 1. **单例模式**:确保一个类只有一个实例,并提供一个全局访问点。这在需要...
### JAVA程序员必读基础篇之面向对象概念 #### 一、面向对象编程(OOP)概述 ...总之,面向对象编程是现代软件开发的基础之一,对于Java程序员而言,深入理解和掌握面向对象的概念和技术至关重要。
本书通俗易懂,并辅以大量的实例,使没有程序设计语言基础的读者,也可以轻松地掌握Java面向对象编程,为程序设计打好基础。 读者只要掌握一定的计算机基础知识,即可通过自学本书,轻松掌握Java程序设计语言及程序...
《易飞扬面向对象编程》第二版是一本深入探讨面向对象编程技术的教程,旨在帮助程序员理解和应用面向对象的思想,以实现更加高效、可维护的代码。面向对象编程(Object-Oriented Programming,简称OOP)是一种编程...