Giter Club home page Giter Club logo

Comments (4)

anneetien avatar anneetien commented on August 29, 2024 1

Is this issue still relevant, since we added Interfaces in Java?

from famix.

girba avatar girba commented on August 29, 2024

The reason for isInterface is the logic in the subclasses. For example, those that deal with generics. Of course, now with traits, you might have a better reusability mechanism, but do take a look at the subclasses.

from famix.

fuhrmanator avatar fuhrmanator commented on August 29, 2024

FamixInterface seems OK to me (you'd want to see all the interfaces in a design), since the entity is only that. But I'm not sure of the added value of FamixImplementation (because implementations can be for several interfaces) vs a classic FamixClass that has a relationship of implements to one or many FamixInterface entities.

@girba without a concrete example, I don't understand about subclass logic with interfaces (generics is not my strong point).

I found this discussion because I didn't understand how isInterface was generated in the FamixJava model. But now, thanks to @NicolasAnquetil, I know it is/was hard-coded in the Entities. So, maybe this comment is off topic, but I almost expected a FamixJavaClass to use a TCanBeInterface trait which has the isInterface property (similar to how isAbstract works for classes with TCanBeAbstract).

In our FamixTypeScript MM it would be useful to say classes are related to an interface trait. Since this kind of "interface" can exist in C++/Java/C#/TypeScript/Pharo/... a trait would definitely be useful as an abstraction.

from famix.

anneetien avatar anneetien commented on August 29, 2024

close with #443

from famix.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.