Question

Quels sont les différents types d'encapsulation?

Ai-je raison de penser cela se réfère essentiellement aux concepts OO centraux tels que l'exploitation, Polymorphisme et héritage?

Ma compréhension de l'encapsulation est qu'il est une méthode de cacher des données / fonctionnalité, mais je jamais vraiment considéré Polymorphisme ou de succession une forme d'encapsulation, bien que je puisse voir comment l'encapsulation peut être considéré polymorphisme car il peut cacher le type exact de l'objet que vous interagissez avec.

Alors, diriez-vous que ce sujet est, ou suis-je manque quelques concepts de base?

modifier Je viens de remarquer dans les commentaires quelqu'un a dit qu'il pourrait se référer à des méthodes privées / publiques, peut-être que je pense à la question trop et attendre une réponse plus compliquée qu'elle ne l'est vraiment?

Était-ce utile?

La solution

Vous pensez trop je pense.

http://en.wikipedia.org/wiki/Information_hiding

Extrait de cet article :

L'information se cache dans la science informatique est le principe de la dissimulation des décisions de conception dans un programme informatique qui sont les plus susceptibles de changer, protégeant ainsi les autres parties du programme de changement si la décision de conception est modifiée. La protection consiste à fournir une interface stable qui protège le reste du programme de la mise en œuvre (les détails qui sont les plus susceptibles de changer).

Une forme commune d'encapsulation utilise des propriétés pour masquer les champs de données privées. Une forme encore plus commune est l'utilisation de OO pour encapsuler la complexité des logiciels dans des classes bien divisoned avec des rôles et des responsabilités. Ceci est une tennant clé de OO, comme il se déplace d'un style de conception monolithique de la procédure à un style plus structuré qui vise à cacher toutes les informations non pertinentes, sauf ce qui a trait à la tâche particulière de votre travail sur.

Autres conseils

Il est mon point de vue et de comprendre que l'encapsulation terme (à encapsulent) est l'art / science de capturer l'essence de quelque chose dans le but de l'affichage. En fait, par définition - pour encapsuler consiste à emballer quelque chose ou l'enfermer dans un autre récipient. Par conséquent, l'encapsulation terme signifierait prendre l'essence de ce que vous essayez d'atteindre et de l'emballage sous une forme utile pour qu'il puisse être réutilisé au besoin.

Donc, pour l'interpréter, cela signifierait pour emballer un matériau sous une forme qui rendrait plus utile plus tard.

Alors, vraiment ... interpréter cela comme bon vous semble. Je le vois comme prendre un tas d'algorithmes et de services publics et la création d'une structure de classe qui peut être utilisé comme une API dans d'autres projets. Ce code encapsulé pourrait être héritée et / ou étendu pour le rendre utile à des fins modifiées sans changer l'essence sous-jacente de l'API.

Par conséquent, l'abstraction, le polymorphisme et l'héritage ne sont pas des formes d'encapsulation, mais les formes d'extension et la modification du code encapsulé.

Les différentes formes d'encapsulation signifierait que les modificateurs sur les propriétés, les méthodes, les champs et les classes - qui est public, privé, statique, virtuel (en C #). Tout le reste (à savoir, Surcharges préséances, des ombres) est une modification ou une extension à cette encapsulation.

Vous pouvez envisager le code modifié une encapsulation qui pourrait ensuite être héritée / Abstraite / étendu, mais le package qui doit être étendu est le produit encapsulé.

Encapsulation est défini par l'Organisation internationale de normalisation internationale de normalisation. « Technologies de l'information - Traitement réparti ouvert, » ISO / CEI 10746, 1998

Il est défini en termes de définitions plus primitives:

Entité. Toute chose concrète ou abstraite d'intérêt

Objet: Un modèle d'une entité. Un objet est caractérisé par son comportement et, Dualement, par son état.

Comportement (d'un objet): Une collection d'actions avec un ensemble de contraintes quand ils peuvent se produire.

Interface: une abstraction du comportement d'un objet qui se compose d'un sous-ensemble des interactions de cet objet avec un ensemble de contraintes quand ils peuvent se produire.

Encapsulation: la propriété que les informations contenues dans un objet est accessible uniquement par des interactions aux interfaces supportées par le objet.

L'ISO ne définit pas les différents types d'encapsulation.

D'autres postes ont mentionné cacher des informations. L'ISO ne définit pas explicitement l'encapsulation en termes de dissimulation d'informations, mais il ne semble implicite, voir « fondamentaux de la théorie Encapsulation, »

Encapsulation est plus que simplement se cacher de l'information. C'est un aspect de celui-ci. Il doit faire avec l'interface à un module. Une interface offre deux fonctions très importantes:. Encapsulation et abstraction

  

L'abstraction est lorsqu'un client d'un module n'a pas besoin d'en savoir plus que ce qui est dans l'interface.

et

  

Encapsulation est lorsqu'un client d'un module ne peut pas en savoir plus que ce qui est dans l'interface.

(Les deux définitions de avec UML par Perdita Stevens)

Depuis l'encapsulation se réfère simplement à « cacher l'information » alors je suppose que beaucoup de choses peuvent être classés comme encapsulation. Cependant, je tends à penser à l'encapsulation comme « dissimulation de mise en œuvre », autrement dit, il est un outil que j'utiliser pour créer un couplage lâche entre tout ce que je vous écris et tout client de ce que je l'ai écrit.

Je tends à croire, pragmatiquement, que l'encapsulation est tout paradigme ou les meilleures pratiques qui me permet de présenter une interface propre, solide à tout client.

"Définitions candidats à l'Encapsulation:

  • regroupement physique des activités liées ensemble ou des choses.
  • GateKeeper de l'état ou des données.
  • la mise en œuvre Hiding ".

Provenant: Encapsulation Définition

Il y a deux parties / façons d'atteindre Encapsulation:

  •   

    Tout d'abord, l'encapsulation est une technique qui emballe les données connexes et les comportements en une seule unité, i.e., regroupement physique des opérations (comportements)

par exemple: -.

class Person {
    String name;
    int age;

    void talk() {
    }

    void think() {
    }

    void work() {
    }

    void play() {
    }
}
  •   

    En second lieu, l'encapsulation est une technique permettant de protéger les données contre toute utilisation abusive par le monde extérieur, qui est désigné comme « dissimulation d'information » ou « dissimulation de données ».

par exemple: -.

class Person {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public String getAge() {
        return age;
    }
}

Provenant: Qu'est-ce que Encapsulation en Java - le quoi, pourquoi et comment? , auteur cite spoiler interface comme un exemple, ce qui est faux. Interface sont d'abstraction

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top