Este patrón plantea asignar una responsabilidad al experto en información, es decir, la clase que tiene la información necesaria para cumplir con la responsabilidad.
El experto es usado mas que cualquier otro patrón en la asignación de responsabilidades, es un principio usado continuamente en el diseño orientado a objetos. Experto no significa una obscura idea, sino que expresa la "intuición" común mediante el cual los objetos hacen cosas relacionadas con la información que ellos tienen.
Hay que notar que al cumplimiento de una responsabilidad requiere información que está esparcida entre clases diferentes de objetos. Esto implica que hay muchos "expertos " parciales que colaboran en la tarea.
BENEFICIOS:
La encapsulación es mantenida, desde que los objetos usan sus propias informaciones para realizar tareas. Esto permite poco acoplamiento, lo cual conduce a sistemas mas robustos y de mantenimiento mucho mas fácil.
El comportamiento está distribuído a lo largo de clases que tienen la información requerida, así se alienta una clase "pesoligero" de definiciones que son fáciles de entender y mantener. La alta cohesián tmabién es soportada.
Carlos Javier Martín Cano
Buscar este blog
jueves, 26 de febrero de 2009
jueves, 12 de febrero de 2009
Funcion para recorrer un directorio y copiarlo en una ruta especificada
Aqui os dejo una función util, encargada de copiar todo un directorio
en la ruta especificada.
Private Shared Sub DirectoryCopy( _
ByVal sourceDirName As String, _
ByVal destDirName As String, _
ByVal copySubDirs As Boolean)
Dim dir As System.IO.DirectoryInfo = New System.IO.DirectoryInfo(sourceDirName)
Dim dirs As System.IO.DirectoryInfo() = dir.GetDirectories()
' If the source directory does not exist, throw an exception.
If Not dir.Exists Then
Throw New System.IO.DirectoryNotFoundException( _
"Source directory does not exist or could not be found: " _
+ sourceDirName)
End If
' If the destination directory does not exist, create it.
If Not System.IO.Directory.Exists(destDirName) Then
System.IO.Directory.CreateDirectory(destDirName)
End If
' Get the file contents of the directory to copy.
Dim files As System.IO.FileInfo() = dir.GetFiles()
Dim file As System.IO.FileInfo
For Each file In files
' Create the path to the new copy of the file.
Dim temppath As String = Path.Combine(destDirName, file.Name)
' Copy the file.
file.CopyTo(temppath, False)
Next file
' If copySubDirs is true, copy the subdirectories.
If copySubDirs Then
For Each dir In dirs
' Create the subdirectory.
Dim temppath As String = _
Path.Combine(destDirName, dir.Name)
' Copy the subdirectories.
DirectoryCopy(dir.FullName, temppath, copySubDirs)
Next dir
End If
End Sub
Saludos Carlos Javier Martín Cano
en la ruta especificada.
Private Shared Sub DirectoryCopy( _
ByVal sourceDirName As String, _
ByVal destDirName As String, _
ByVal copySubDirs As Boolean)
Dim dir As System.IO.DirectoryInfo = New System.IO.DirectoryInfo(sourceDirName)
Dim dirs As System.IO.DirectoryInfo() = dir.GetDirectories()
' If the source directory does not exist, throw an exception.
If Not dir.Exists Then
Throw New System.IO.DirectoryNotFoundException( _
"Source directory does not exist or could not be found: " _
+ sourceDirName)
End If
' If the destination directory does not exist, create it.
If Not System.IO.Directory.Exists(destDirName) Then
System.IO.Directory.CreateDirectory(destDirName)
End If
' Get the file contents of the directory to copy.
Dim files As System.IO.FileInfo() = dir.GetFiles()
Dim file As System.IO.FileInfo
For Each file In files
' Create the path to the new copy of the file.
Dim temppath As String = Path.Combine(destDirName, file.Name)
' Copy the file.
file.CopyTo(temppath, False)
Next file
' If copySubDirs is true, copy the subdirectories.
If copySubDirs Then
For Each dir In dirs
' Create the subdirectory.
Dim temppath As String = _
Path.Combine(destDirName, dir.Name)
' Copy the subdirectories.
DirectoryCopy(dir.FullName, temppath, copySubDirs)
Next dir
End If
End Sub
Saludos Carlos Javier Martín Cano
domingo, 1 de febrero de 2009
Obtener punto medio de una via
Try
pPolyline = obtenervias()
pMidPoint = New Point
If Not pPolyline Is Nothing Then
pPolyline.QueryPoint(0, 0.5, True, pMidPoint)
Else
pMidPoint = Nothing
End If
Return pMidPoint
Catch ex As Exception
Throw ex
Finally
End Try Carlos Javier Martín Cano
pPolyline = obtenervias()
pMidPoint = New Point
If Not pPolyline Is Nothing Then
pPolyline.QueryPoint(0, 0.5, True, pMidPoint)
Else
pMidPoint = Nothing
End If
Return pMidPoint
Catch ex As Exception
Throw ex
Finally
End Try Carlos Javier Martín Cano
Conversion de tipos de campos arcGis-.NET
Public Function getConversionTipo(ByVal Field As IField) As String
Select Case Field.Type
Case esriFieldType.esriFieldTypeSingle
Return "System.Double"
Case esriFieldType.esriFieldTypeOID
Return "System.Int32"
Case esriFieldType.esriFieldTypeString
Return "System.String"
Case esriFieldType.esriFieldTypeInteger
Return "System.Int32"
Case esriFieldType.esriFieldTypeDouble
Return "System.Double"
Case esriFieldType.esriFieldTypeDate
Return "System.DateTime"
Case esriFieldType.esriFieldTypeSmallInteger
Return "System.Int16"
End Select
Return Nothing
End Function Carlos Javier Martín Cano
Select Case Field.Type
Case esriFieldType.esriFieldTypeSingle
Return "System.Double"
Case esriFieldType.esriFieldTypeOID
Return "System.Int32"
Case esriFieldType.esriFieldTypeString
Return "System.String"
Case esriFieldType.esriFieldTypeInteger
Return "System.Int32"
Case esriFieldType.esriFieldTypeDouble
Return "System.Double"
Case esriFieldType.esriFieldTypeDate
Return "System.DateTime"
Case esriFieldType.esriFieldTypeSmallInteger
Return "System.Int16"
End Select
Return Nothing
End Function Carlos Javier Martín Cano
Suscribirse a:
Comentarios (Atom)