草庐IT

encapsulation

全部标签

encapsulation - Swift 中的数据封装

我已经阅读了整个Swiftbook,并观看了所有WWDCvideos(我衷心推荐所有这些)。我担心的一件事是数据封装。考虑以下(完全人为的)示例:classStack{varitems:T[]=[]funcpush(newItem:T){items.insert(newItem,atIndex:0)}funcpop()->T?{ifitems.count==0{returnnil;}returnitems.removeAtIndex(0);}}这个类实现了一个堆栈,并使用数组来实现它。问题是,items(就像Swift中的所有属性一样)是公共(public)的,因此没有什么能阻止任何人

java - 为什么 JUnit 5 默认访问修饰符更改为 package-private

为什么JUnit5中的默认访问修饰符是包私有(private)的?JUnit4中的测试必须公开。将其更改为package-private有什么好处? 最佳答案 WhyisthedefaultaccessmodifierinJUnit5package-private?这不是“默认”。技术上没有默认值。相反,在JUnitJupiter中,您可以选择:public、protected或package-private。Whatisthebenefitofchangingittopackage-private?好处是您不再有public类型。

java - GUI 中监听器嵌套类的优点

有人告诉我,对于规模适中的项目,当您有扩展JPanel的类时,最佳做法是使用嵌套类来实现监听器。例如,我可以有一个扩展JPanel的FactoryScreen类,并有一个实现所有必要监听器的嵌套类FactoryScreenBrain。对于以这种方式封装我的类的特定优点或缺点,我从来没有得到很好的解释,直到现在,我一直只有扩展JPanel和实现监听器的类。有人可以为此提供一些指导吗? 最佳答案 为您的听众提供内部类可以使所有这些听众的目的非常明确。有时它还可以避免许多if检查,但会增加一些编码。如果你有面板publicclassMyP

java - 封装到底是什么?

这个问题在这里已经有了答案:Differencebetweenabstractionandencapsulation?(40个答案)关闭7年前。我有两种封装的定义,但不能归为一种定义。封装是数据隐藏。使用private、protected和public,将数据打包到单个组件中。无论发生什么变化都封装它。保护任何容易发生变化的事物。这两个定义怎么说的是同一个概念?

java - 具有 map 的类的获取者/设置者

为包含map的类实现/提供getter/setter的最佳做法是什么?我看到的最常见的实现是:publicclassMyClass{privateMapmyMap;publicgetMyMap(){/*Returnanunmodifiablemap*/}publicsetMyMap(MapmyMap){...}}或者提供一个接口(interface)会更好:publicgetMyMap(){/*Returnamodifiablemap*/}publicaddToMap(Stringkey,Stringvalue){myMap.put(key,value);}为什么这种方法更好?

java - 当我能够使用 setter 方法更改属性值时,封装有什么用?

我尝试了很多次,但我没能理解这一点。Encapsulationisthetechniqueofmakingthefieldsinaclassprivateandprovidingaccesstothefieldsviapublicmethods.Ifafieldisdeclaredprivate,itcannotbeaccessedbyanyoneoutsidetheclass,therebyhidingthefieldswithintheclass.我们如何通过setter方法改变字段的值?我们如何防止直接访问字段?封装的真正用途是什么? 最佳答案

python - Python 类中的公共(public)变量?

我现在正在自学Python类(class)并且看到了这个页面:http://www.tutorialspoint.com/python/python_classes_objects.htmThevariableempCountisaclassvariablewhosevaluewouldbesharedamongallinstancesofathisclass.ThiscanbeaccessedasEmployee.empCountfrominsidetheclassoroutsidetheclass.我假设这称为公共(public)变量?还是静态公共(public)变量?这在技术上是

Python对象封装安全

我有一个问题,我选择Python作为更大项目的可能语言的决定取决于答案——我自己想不出来:我们都知道Python没有真正的对象封装,所以没有对象的“私有(private)”属性。关于这个问题,GuidovanRossum表示,人们可以在不被“允许”的情况下访问外来物体的隐藏部分,“我们都是成年人”,“只是不要这样做”。我完全可以接受,只要我编写的软件是在我自己手中,所以我对我自己的错误负责,并且可以尽量避免这样的事情。但是-我的问题来了:如果我提供一个插件框架,其中包含一些具有一些扩展点的插件,并且许多插件是由其他人制作的,也许是我不能完全信任的人。如何防止插件访问我的框架内部?有没有

javascript - 影子 DOM : is it possible to encapsulate JS?

我正在尝试寻找一种不使用iframe来封装Javascript的方法。理想情况下,我想要一种在父页面上加载外部HTML组件(小部件)的方法,而无需使用iframe附带的两步加载过程(首先加载主机页面,然后才加载iframe内容).是否有可能通过一些新的网络组件技术来实现这一点——shadowDOM/templates/imports?我能够接近将HTML添加到影子DOM和封装CSS,但无法确认是否有可能为组件的javascript执行获取单独的文档。 最佳答案 Web组件,通过HTMLimports使用,封装ShadowDOMHTM

javascript - 影子 DOM : is it possible to encapsulate JS?

我正在尝试寻找一种不使用iframe来封装Javascript的方法。理想情况下,我想要一种在父页面上加载外部HTML组件(小部件)的方法,而无需使用iframe附带的两步加载过程(首先加载主机页面,然后才加载iframe内容).是否有可能通过一些新的网络组件技术来实现这一点——shadowDOM/templates/imports?我能够接近将HTML添加到影子DOM和封装CSS,但无法确认是否有可能为组件的javascript执行获取单独的文档。 最佳答案 Web组件,通过HTMLimports使用,封装ShadowDOMHTM