Tag: oop

我怎样才能在Python中创build一个对象的副本?

我想创build一个对象的副本。 我希望新对象拥有旧对象的所有属性(字段的值)。 但我想要有独立的对象。 所以,如果我改变新对象的字段的值,旧对象不应该受到影响。

什么是序列化?

我正在开始使用OOP编程,并想知道在OOP说法中序列化的含义是什么?

你应该使用受保护的成员variables吗?

你应该使用受保护的成员variables吗? 有什么优势,这可能导致什么问题?

列出给定类的层次结构中的所有基类?

给定一个Foo类(不pipe它是否是新式类),如何生成所有的基类 – inheritance层次结构中的任何地方 – 它的issubclass ?

CoffeeScript中的私人成员?

有人知道如何在CoffeeScript中创build私有的非静态成员吗​​? 目前我正在做这个,它只是使用一个以下划线开头的公共variables来澄清它不应该在类之外使用: class Thing extends EventEmitter constructor: (@_name) -> getName: -> @_name 把variables放在类中使其成为一个静态成员,但是如何使它成为非静态的? 甚至有可能没有“看中”?

静态和密封类的差异

有什么类在静态类中实现吗? 手段: static class ABC : Anyclass 有没有可以在密封类和静态类中inheritance的类? 手段: static class ABC : AClass {} 和 sealed class ABC : AClass {} 我可能在某种程度上是错的吗?

我如何在我的Web MVC应用程序中实现访问控制列表?

第一个问题 请你能解释一下在MVC中如何实现最简单的ACL。 这是在控制器中使用Acl的第一种方法… <?php class MyController extends Controller { public function myMethod() { //It is just abstract code $acl = new Acl(); $acl->setController('MyController'); $acl->setMethod('myMethod'); $acl->getRole(); if (!$acl->allowed()) die("You're not allowed to do it!"); … } } ?> 这是非常糟糕的做法,而且我们不得不将Acl代码添加到每个控制器的方法中,但是我们不需要任何额外的依赖关系! 下一个方法是使所有控制器的方法private ,并将ACL代码添加到控制器的__call方法中。 <?php class MyController extends Controller { private function myMethod() { … } public function __call($name, […]

函数式编程语言如何工作?

如果函数式编程语言不能保存任何状态,他们如何做一些简单的事情,比如读取用户的input? 他们如何“存储”input(或为此存储任何数据?) 例如:如何将这个简单的C的东西转换成像Haskell这样的函数式编程语言? #include<stdio.h> int main() { int no; scanf("%d",&no); return 0; } (我的问题受到了这个出色的文章的启发: “名词王国的执行” ,阅读它让我更好地理解了什么是面向对象的编程,Java如何以一种极端的方式实现它,以及函数式编程语言是如何对比。)

为什么我们不应该在java中使用受保护的静态

我正在经历这个问题有没有办法在Java中重写类variables? 第36条提案的第一条评论是: 如果您看到protected static ,请运行。 任何人都可以解释为什么被protected static皱眉?

构build大的,不可变的对象,而不使用具有长参数列表的构造函数

我有一些大的(超过3个领域)对象,可以而且应该是不可变的。 每当我遇到这种情况下,我倾向于用长参数列表创build构造函数可憎。 它感觉不对,难以使用和可读性受损。 如果这些字段是某种types的收集types,比如列表,则更为糟糕。 一个简单的addSibling(S s)将会很容易地减less对象的创build,但会使对象addSibling(S s)可变的。 你们在这种情况下使用什么? 我在Scala和Java,但我认为这个问题是语言不可知的,只要语言是面向对象的。 我能想到的解决scheme: “长参数列表的构造函数可憎” build造者模式 感谢您的input!