面向对象编程的程序员

一个面向对象编程的程序员:
眼中的对象:面向对象编程是一种新的解决的问题的思想,也可以是说一种简化问题复杂的方法。
对象有自己的生命,例如在内容中它是真实存在的,也有生命结束的时候(被销毁);
大凡一个事物存在总有他的目的,所以对象的生产出来也有他的职责,为履行职责而生存,尽职后就可退休;
万物都是有联系的, 对象被抽象出来就是简化抽象现实中的事物,所以对象之间也会关系,比如单向或者双向的一对多,对象以不同的角色相互协作,完成任务。
事物总是在发展的,程序中的对象既然是对事物的抽象,当然对象也要体现这种发展进化的特征,对象之间的继承特性可以实现这种进化,进化出新的对象,自然会更改老对象的行为,这个行为被概括出一个概念--覆盖;这个替换原则非常之重要,她能够实现软件的重构复用,一些编程类指导书籍书上在介绍面向对象编程的时候总是说继承实现了软件的复用,其实这个是不准确的,我们要用一个对象时我们并不是都去继承他们,我们要用它直接把它作为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接口,有人说接口是一种高度抽象,其实这么说更加把这个概念给抽象了,也有人说接口定义了一种通信契约,这种说法没有错误,但是不怎么好理解,我觉得编写接口,就是在表达心中的编程思想,你不用实现它,这在做软件设计的时候非常有利的,而且当在依赖注入机制下可以达到高度的设计与实现的分离,面向接口编程容易维护,当然这个接口可以暴露出去供其他程序调用,也算一种封装机制;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值