面向对象编程,再见!
扫描二维码
随时随地手机看文章
作为程序员,你是使用函数式编程还是面向对象编程方式?
在本文中,拥有 10 多年软件开发经验的作者从面向对象编程的三大特性——继承、封装、多态三大角度提出了自己的疑问,并深刻表示是时候和面向对象编程说再见了。
01
面向对象语言的问题在于,它们依赖于特定的环境。你想要个香蕉,但拿到的却是拿着香蕉的猩猩,乃至最后你拥有了整片丛林。
Class PoweredDevice {
}
Class Scanner inherits from PoweredDevice {
function start() {
}
}
Class Printer inherits from PoweredDevice {
function start() {
}
}
Class Copier inherits from Scanner, Printer {
}
Class PoweredDevice {
}
Class Scanner inherits from PoweredDevice {
function start() {
}
}
Class Printer inherits from PoweredDevice {
function start() {
}
}
Class Copier {
Scanner scanner
Printer printer
function start() {
printer.start()
}
}
import java.util.ArrayList;
public
class
Array
{
private ArrayList<Object> a =
new ArrayList<Object>();
public void add(Object element)
{
a.
add(element);
}
public void addAll(Object elements[])
{
for (
int i =
0; i < elements.length; ++i)
a.
add(elements[i]);
// this line is going to be changed
}
}
public
class ArrayCount extends Array
{
private
int count =
0;
@Override
public void add(Object element)
{
super.add(element);
++count;
}
@Override
public void addAll(Object elements[])
{
super.addAll(elements);
count += elements.length;
}
}
public void addAll(Object elements[])
{
for (
int i =
0; i < elements.length; ++i)
add(elements[i]);
// this line was changed
}
Document
Company
Handbook
推荐阅读
免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!






