当前位置:首页 > Java入门 > 正文内容

java程序员主要工作内容(java程序员岗位职责)

abcsky887个月前 (10-28)Java入门108

本篇文章给大家谈谈

面向对象设计原则是OOPS编程的核心, 但我见过的大多数Java程序员热心于像Singleton (单例) 、 Decorator(装饰器)、Observer(观察者) 等设计模式,而没有把足够多的注意力放在学习面向对象的分析和设计上面。

java程序员主要工作内容(java程序员岗位职责)

学习面向对象编程像“抽象”、“封装”、“多态”、“继承” 等基础知识是重要的,但同时为了创建简洁、模块化的设计,了解这些设计原则也同等重要我经常看到不同经验水平的java程序员,他们有的不知道这些OOPS 和SOLID设计原则,有的只是不知道一个特定的设计原则会带来怎样的益处,甚至不知道在编码中如何使用这些设计原则。

(设计原则)底线是永远追求推广引流啥意思高内聚、低耦合的编码或设计 Apache 和 Sun的开源代码是学习Java和OOPS设计原则的良好范例它们向我们展示了,设计原则在Java编程中是如何使用的Java JDK 使用了一些设计原则:BorderFactory类中的工厂模式、Runtime类中的单例模式、java.io 类中的装饰器模式。

顺便说一句,如果您真的对Java编码原则感兴趣,请阅读Joshua Bloch 的Effective Java,他编写过Java API我个人最喜欢的关于面向对象设计模式的是Kathy Sierra的Head First Design Pattern(深入浅出设计模式),以及其它的关于深入浅出面向推广引流啥意思对象分析和设计。

这些书对编写更好的代码有很大帮助,充分利用各种面向对象和SOLID的设计模式虽然学习设计模式(原则)最好的方法是现实中的例子和理解违反设计原则带来的不便,本文的宗旨是向那些没有接触过或正处于学习阶段的Java程序员介绍面向对象设计原则。

我个人认为OOPS 和SOLID设计原则需要有文章清楚的介绍它们,在此我一定尽力做到这点,但现在请您准备浏览以下设计模式(原则)

DRY – Don’t repeat yourself我们第一个面向对象设计原则是:DRY ,从名称可以看出DRY(don’t repeat yourself)意思是不写重复代码,而是抽象成可复用的代码块。

如果您有两处以推广引流啥意思上相同的代码块,请考虑把它们抽象成一个单独的方法;或者您多次使用了硬编码的值,请把它们设置成公共常量这种面向对象设计原则的优点是易于维护重要的是不要滥用此原则,重复不是针对代码而是针对功能来说。

它的意思是,如果您使用通用代码来验证OrderID和SSN,这并不意味着它们是相同的或者他们今后将保持不变通过把通用代码用于实现两种不同的功能,或者您把这两种不同的功能密切地联系在一起;当您的OrderID格式改变时,您的SSN验证代码将会中断。

所以要当心这种耦合,而且不要把彼此之间没有任何关系却类似的代码组合在一起封装经常修改的代码Encapsulate What Changes在软件领域永远不变的是推广引流啥意思“变化”,所以把您认为或怀疑将来要被修改的代码封装起来。

这种面向对象设计模式的优点是:易于测试和维护恰当封装的代码如果您在用Java编程,那么请遵守以下原则:变量和方法的访问权限默认设置为私有,并且逐步放开它们的访问权限,例如从“private”到“protected ”、“not public”。

Java中的一些设计模式使用了封装,工厂设计模式就是一个例子,它封装了创建对象的代码而且提供了以下灵活性:后续生成新对象不影响现有的代码打开/关闭设计原则OpenClosed Design Principle

类、方法/函数应当是对扩展(新功能)开放,对修改闭合这是另外一个优雅的SOLID 设计原则,推广引流啥意思以防止有人修改通过测试的代码理想情况下假如您添加了新功能,那么您的代码要经过测试,这就是打开/关闭设计原则的目标。

顺便说一句,SOLID中的字母“O”指的是打开/关闭设计原则单一职责原则Single Responsibility Principle(SRP)单一职责原则是另外一个SOLID设计原则,SOLID中的字母“S”指的就是它。

按照SRP,一个类修改的原因应当有且只有一个,或者一个类应当总是实现单一功能如果您在Java中的一个类实现了多个功能,那么这些功能之间便产生了耦合关系;如果您修改其中的一个功能,您有可能就打破了这种耦合关系,那么就要进行另一轮测试以避免产生新的问题。

依赖注入/反转推广引流啥意思原则Dependency Injection or Inversion principle不要问框架的依赖注入功能将会给你带来什么益处,依赖注入功能在spring框架里已经很好的得到了实现,这一设计原则的优雅之处在于:DI框架注入的任何一个类都易于用模拟对象进行测试,并且更易于维护,因为创建对象的代码在框架里是集中的而且和客户端代码是隔离的。

有多种方法可以实现依赖注入,例如使用字节码工具,其中一些AOP(面向切面编程)框架如切入点表达式或者spring里使用的代理想对这种SOLID设计原则了解更多,请看IOC 和 DI设计模式中的例子 SOLID中的字母“D”指的就是这种设计原则。

优先使用组合推广引流啥意思而非继承Favor Composition over Inheritance如果可以的话,要优先使用组合而非继承你们中的一些人可能为此争论,但我发现组合比继承更有灵活性组合允许在运行时通过设置属性修改一个类的行为,通过使用多态即以接口的形式实现类之间的组合关系,并且为修改组合关系提供了灵活性。

甚至 Effective Java也建议优先使用组合而非继承里氏替换原则Liskov Substitution Principle LSP根据里氏替换原则,父类出现的地方可以用子类来替换,例如父类的方法或函数被子类对象替换应该没有任何问题。

LSP和单一职责原则、接口隔离原则密切相关如果一个父类的功能比其子推广引流啥意思类还要多,那么它可能不支持这一功能,而且也违反了LSP设计原则为了遵循 LSP SOLID设计原则,派生类或子类(相对父类比较)必须增强功能,而非减少。

SOLID中的字母“L”指的就是 LSP设计原则接口隔离原则接口隔离原则指,如果不需要一个接口的功能,那么就不要实现此接口这大多在以下情况发生:一个接口包含多种功能,而实现类只需要其中一种功能接口设计是一种棘手的工作,因为一旦发布了接口,您就不能修改它否则会影响实现该接口的类。

在Java中这种设计原则的另一个好处是:接口有一个特点,任何类使用它之前都要实现该接口所有的方法,所以使用功能单一的接口意味着实现更少的方法编程以接口(而非实现对象)为中推广引流啥意思心编程总是以接口(而非实现对象)为中心,这会使代码的结构灵活,而且任何一个新的接口实现对象都能兼容现有代码结构。

所以在Java中,变量、方法返回值、方法参数的数据类型请使用接口这是许多Java程序员的建议, Effective Java 以及 head first design pattern 等书也这样建议代理原则

不要期望一个类完成所有的功能,可以适当地把一些功能交给代理类实现代理原则的典范是:Java 中的equals() 和 hashCode() 方法为了比较两个对象的内容是否相同,我们让用于比较的类本身完成对比工作而非它们的调用方。

这种设计原则的好处是:没有重复编码而且很容易修改类的行推广引流啥意思为总结以上所有面向对象的设计原则可以帮助你写出灵活、优雅的代码:具有高内聚低耦合的代码结构理论只是第一步,更重要的是我们要习得一种能力去发现什么时候使用这些设计原则。

去发现我们是否违反了什么设计原则和影响了代码的灵活性,但是世界上没有什么是完美的,我们解决问题时不能总去使用设计模式和设计原则,它们大多用于有较长维护周期的大型企业项目往期精彩回顾

基础知识

这70个Java必背英语单词不会,就别说你是Java程序员!

SVN教程精讲

【动力节点】大型高级SVN教程精讲发布!

面试题

顶级Java多线程面试题及回答

推荐阅读如何成为一个Java高薪架构师?每一个做JAVA开发的程序员都应该知道的JAVA发展史一推广引流啥意思个程序员的心声:月入上万的背后心酸只有我们知道衡量培训机构好坏的唯一标准——【口碑】推荐!国外程序员整理的Java资源大全

口口相传的JAVA黄埔军校

动力节点长按识别二维码,关注动力节点

扫描二维码推送至手机访问。

版权声明:本文由海南拓宏网络科技工作室发布,如需转载请注明出处。

本文链接:http://www.4blc.com/post/593.html

分享给朋友:

“java程序员主要工作内容(java程序员岗位职责)” 的相关文章

十个最难回答的问题及答案(比较难回答的问题)

本文分享给大家的是: 译者:Yujiaao原文链接:https://segmentfault.com/a/1190000019962661这是我收集的10个最棘手的Java面试问题列表这些问题主要来自 Java 核心部分 ,不涉及 Java EE 相关问题。 你可能知道这些...

java学到什么程度才能找工作(java学到什么地步可以找工作)

本篇文章给大家谈谈 很多应届生找工作没自信,不知道自己学习的东西能不能胜任企业里的工作,网上一搜,介绍的全是各种没有接触过的技术,然后就更焦虑了到底学到什么程度就可以找工作了呢,今天我给大家说一下最低要求第一,基础部分,如初级语法,容器,异常,io流,多线程,注解等 第二,...

使用java面向对象编程(java学到面向对象可以做软件了吗知乎文章)

本篇文章给大家谈谈 如何能学好Java编程开发?怎么去掌握面向对象?Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。 很多人在进行Java编程基础学习的时候都会接触...

java编程入门官方教程(编程的java是什么)

今天给各位分享 什么是编程?我用最直白的语言,来跟你解释编程是什么编程就是:用类似英语的语言,和电脑对话,指挥电脑为你工作你指挥英国人,要用英语给他下命令,指挥计算机,那肯定要用计算机懂得语言,这个语言就叫Java Python C#。 小时候,父母会教我们说话,也在教我们...

江西新传奇装饰 熊思文(江西新传奇装饰工程有限公司创始人是谁)

今天给各位分享 原标题:江西南昌:“新传奇装饰”逾期未完工,电工还吓唬业主要拆走电线?来源|都市现场原创未经允许 请勿转载最近,江西南昌的消费者舒女士给《都市现场》打来电话说,自己在青云谱区购买了一套公寓,为了省事,她找了一家名为“新传奇装饰”的装修公司装新家。 可是,舒女...

lfto户型图(lft户型图)

今天给各位分享 lfot户型是指复式小居室,居住范围在30-50平方米,层高在3.7-5.2米之间的住宅,虽说销售时按一层的建筑面积计算,但实际使用面积却可达到销售面积的近2倍;高层空间变化丰富,可以根据自己的喜好去装修,物尽其用。 如今,一些复式、lfot的户型吸引很多年...