This is a problem that is usually solved in Go with code generation. You
would use a go:generate directive to generate implementations for an
interface of interest.

Something like java.lang.reflect.Proxy in Go would be very cool though.

----
*Josh Humphries*
jh...@bluegosling.com

On Tue, Jun 20, 2017 at 5:03 PM, Dat Huynh <audathu...@gmail.com> wrote:

> Hi Ian,
>
> The struct instance I create for an interface will actually take the role
> of transport layer.
> I will not implement the real logic of the methods of the interface in
> client side.
> The real implementation for the logic of the methods will be implemented
> on the server side only.
>
> In the implementation of the methods for the struct instance, I write code
> to send interface name, method name and parameters to the server via my own
> protocol (e.g HTTP).
> Then it also receives and returns results to the place where we call
> methods.
>
> After we have such a library, we can use it with any interfaces and any
> methods, client side and server side will talk each other in our own
> protocol.
> You can encrypt data, compress data and do whatever with the data before
> you transfer it.
>
> Programers in client side just need to know which interface they want to
> use and they just  use the library "servicefactory" to create a struct
> instance and use it to talk to the server. Before that, they must specify
> the IP to tell where the server is.
>
> I have successfully implemented the idea in Java and used it in my system
> with hundreds of interfaces.
> I wonder why I cannot do it in Go easily as what I did with Java.
>
> Regards,
> Dat.
>
>
>
>
>
>
>
> On Wed, Jun 21, 2017 at 6:00 AM, Ian Lance Taylor <i...@golang.org> wrote:
>
>> On Mon, Jun 19, 2017 at 8:38 PM, Dat Huynh <audathu...@gmail.com> wrote:
>> >
>> > On Tuesday, June 20, 2017 at 4:07:46 AM UTC+10, Ian Lance Taylor wrote:
>> >>
>> >> On Sat, Jun 17, 2017 at 5:17 PM, Dat Huynh <audat...@gmail.com> wrote:
>> >> > Why do you need this feature?
>> >
>> >
>> > I have already answered the question in my email replying Lutz Horn.
>>
>> Thanks.  Unfortunately, I don't understand your answer.  You still
>> have to write the methods somewhere.  reflect.MakeStruct is not going
>> to write the methods for you.  And once you write the methods, you
>> have a type that implements the interface that you want.
>>
>> Ian
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to golang-nuts+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to