File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Software Architecture for developers question : border components

 
Andrea Taini
Greenhorn
Posts: 5
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Sometime it is hard to understand on which side put components when they are the connection between two layers.
For example the Controller: functionally it is more connected to the business layer as it interacts with it to expose its data to the presentation layer.
Conceptually it is connected to the presentation layer, as it is finalized to it.
In a such situation, where must be decided a component on wich layer should be, what prevales? Functional or conceptual design?
Thank you!
 
Simon Brown
sharp shooter, and author
Ranch Hand
Posts: 1913
6
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Without seeing your code, this is a tricky question to answer. It also raises the interesting question of whether a layered architecture helps or hinders many software development efforts. I've struggled with similar debates in the past too, and there are always pieces of code that don't cleanly fit into one layer or another. Here's an article I wrote a while back (a longer version is in the book) that talks about the mapping between software architecture and code, which I think will be an interesting read for you -> http://java.dzone.com/articles/mapping-software-architecture

It doesn't offer many answers (sorry!), but it should get you thinking about how it's potentially worth challenging the way that we structure a codebase.
 
Junilu Lacar
Bartender
Pie
Posts: 6529
21
Java Linux Mac Scala Spring
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
One way of thinking about this would be in the context of a Hexagonal Architecture or "Ports and Adaptors": a Controller class is really just another type of adapter that converts some kind of stimulus or event into a usable procedure call or message that activates some functionality in the core application. I've seen an increasing number of references to HA in recent years and I find it's a very useful way to envision the overall structure of a software system.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic